Part Number Hot Search : 
FE0803 YAAMUA A1010 4303F P0721SAL 223985 P0721SAL FDB5800
Product Description
Full Text Search
 

To Download WM9090 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  w WM9090 ultra low power audio subsystem wolfson microelectronics plc [1] this product is protected by us patents 7,622,984 and 7,626,445 to receive regular email updates, sign up at http://www.wolfsonmicro.com/enews production data, november 2010, rev 4.1 copyright ? 2010 wolfson microelectronics plc description the WM9090 [1] is a high performance low power audio subsystem with integrated headphone driver and class d speaker driver. the speaker driver supports 750mw output power at 3.7v, 1%thd. the unique dual mode charge pump architecture provides ground referenced headphone outputs, removing the requirement for external coupling capacitors. class g technology is integrated to increase the efficiency and extend playback time by optimizing the headphone driver supply voltages according to the volume control. the flexible input configuration allows single ended or differential stereo inputs. mixers allow highly flexible routing to the outputs. separate mixer and volume controls are provided for each headphone and speaker driver. automatic gain control limits the speaker output signal in order to prevent clipping. dc offset correction to less than 1mv guarantees a pop/click-free headphone start up. WM9090 is controlled using a two-wire i2c interface. an integrated oscillator generates all internal clocks, removing the need to provide any external clock. WM9090 is available in a 2.53mm x 2.07mm 20-bump csp package. features ? mono class d speaker driver - 2w at 5v spkvdd @ 1% thd+n into 4 ? - 950mw at 4.2v spkvdd @ 1% thd+n into 8 ? - 90db snr ? ground referenced stereo headphone driver - 35mw into 16 ? load @ 1% thd+n - 95db snr - 80db thd+n ? differential and single ended analogue input configurations ? integrated oscillator for clocking requirements ? i 2 c 2-wire software control interface ? automatic gain control (agc) for speaker output ? silentswitch? pop and click suppression - < 1mv dc offset ? <50ms start up time ? excellent rf and tdma noise immunity ? ultra low power consumption - 4mw quiescent for headphone driver - 5mw quiescent for speaker driver ? shutdown current < 1ua ? supply voltage - spkvdd = 2.7v to 5.5v - avdd = 1.8v ? 1.8v to 2.7v control interface compatibility ? 20-bump csp package applications ? mobile handsets block diagram spkvdd spkoutp spkoutn vmidc sclk gnd hpoutl hpoutr automatic gain control control interface cpvoutn cpvoutp cpca cpcb charge pump +6db to -57db in 1db steps +6db to -57db in 1db steps in1n sda in1p +6db to -57db in 1db steps speaker vmid vmid avdd -6db to 18db -6db to 18db boost amplifier class d driver WM9090 dc offset correction dc offset correction + 0db, -6db, -9db, -12db 0db, -6db, -9db, -12db + in2n in2p vmid vmid -6db to 18db -6db to 18db 0db, -6db, -9db, -12db +
WM9090 production data w pd, november 2010, rev 4.1 2 table of contents description ....................................................................................................... 1 features............................................................................................................. 1 applications ..................................................................................................... 1 block diagram ................................................................................................. 1 table of contents ......................................................................................... 2 pin configuration ........................................................................................... 4 ordering information .................................................................................. 4 pin description ................................................................................................ 5 absolute maximum ratings ......................................................................... 6 recommended operating conditions ..................................................... 6 electrical characteristics ...................................................................... 7 terminology ............................................................................................................. 9 performance plots ............................................................................................. 10 typical performance .................................................................................. 11 power consumption ............................................................................................ 11 audio signal paths diagram ..................................................................... 12 control interface timing ......................................................................... 13 device description ....................................................................................... 14 introduction .......................................................................................................... 14 input signal path .................................................................................................. 15 line inputs ................................................................................................................... ......................... 16 input pga enable .............................................................................................................. .................. 16 input pga configuration ....................................................................................................... ......... 17 input pga volume control ...................................................................................................... ....... 17 output signal path .............................................................................................. 20 output signal paths enable .................................................................................................... ...... 20 speaker mixer control ......................................................................................................... .......... 21 speaker output volume control ................................................................................................ 22 speaker boost mixer control ...................................................................................................... 22 headphone mixer control ....................................................................................................... ...... 23 headphone output volume control .......................................................................................... 24 automatic gain control (agc) ......................................................................... 27 agc control ................................................................................................................... ..................... 27 agc anti-clip ................................................................................................................. ....................... 27 agc power limiting ............................................................................................................ ................ 29 analogue outputs ............................................................................................... 31 speaker output configurations ................................................................................................. 31 headphone output configurations ........................................................................................... 32 clocking control ................................................................................................ 32 control interface .............................................................................................. 34 control write sequencer ................................................................................ 37 initiating a sequence ......................................................................................................... .............. 37 programming a sequence ........................................................................................................ ...... 38 default sequences ............................................................................................................. .............. 40 power sequences and pop suppression control .................................. 43 input vmid clamps ............................................................................................................. ................. 43 headphone enable/disable ...................................................................................................... ....... 43 recommended headphone start up sequence ....................................................................... 45
production data WM9090 w pd, november 2010, rev 4.1 3 charge pump ........................................................................................................... 47 dc servo .................................................................................................................. 48 dc servo enable and start-up .................................................................................................. ... 48 dc servo active modes ......................................................................................................... ........... 50 dc servo readback ............................................................................................................. .............. 51 reference voltages and master bias .......................................................... 52 power management ............................................................................................. 53 thermal shutdown .............................................................................................. 55 software reset and chip id ............................................................................. 55 register map ................................................................................................... 56 register bits by address .................................................................................. 58 applications information ......................................................................... 74 recommended external components ........................................................... 74 audio input paths ............................................................................................................................... 75 power supply decoupling ....................................................................................................... ...... 76 headphone output path ......................................................................................................... ......... 76 class d speaker connections ................................................................................................... ... 77 pcb layout considerations .............................................................................. 79 class d loudspeaker connection .............................................................................................. 7 9 package dimensions .................................................................................... 80 important notice .......................................................................................... 81 address: ................................................................................................................... 81
WM9090 production data w pd, november 2010, rev 4.1 4 pin configuration 20-bump csp package; top view ordering information order code temperature range package moisture sensitivity level peak soldering temperature WM9090ecs/r -40 c to +85 c 20-ball w-csp (pb-free, tape and reel) msl1 260 c note: reel quantity = 5000
production data WM9090 w pd, november 2010, rev 4.1 5 pin description pin no name type description a1 spkoutn anal ogue output speaker negative output a2 spkvdd s upply speaker supply a3 dnc n/a do not connect a4 in2n analogue input in2 negative analogue input a5 in2p analogue input in2 positive analogue input b1 spkoutp anal ogue output speaker positive output b2 gnd supply ground for speaker and charge pump b3 dnc n/a do not connect b4 in1n analogue input in1 negative analogue input b5 in1p analogue input in1 positive analogue input c1 cpvoutp analogue output charge pump positive rail decoupling pin c2 avdd supply analogue supply c3 sclk digital input control interface clock c4 sda digital input / output control interface data c5 vmidc analogue output mid-rail voltage decoupling pin d1 cpcb analogue output charge pump flyback capacitor pin d2 cpca analogue output charge pump flyback capacitor pin d3 cpvoutn analogue output charge pump negative rail decoupling pin d4 hpoutl analogue output left headphone output d5 hpoutr analogue output right headphone output
WM9090 production data w pd, november 2010, rev 4.1 6 absolute maximum ratings absolute maximum ratings are stress ratings only. permanent damage to the device may be caused by continuously operating at or beyond these limits. device functional operating limits and guaranteed performance specifications are given under electrical characteristics at the test conditions specified. esd sensitive device. this device is manufactured on a cmos process. it is therefore generically susceptible to damage from excessive static voltages. proper esd precautions must be taken during handling and storage of this device. wolfson tests its package types according to ipc/jedec j-std-020b for moisture sensitivity to determine acceptable storage conditions prior to surface mount assembly. these levels are: msl1 = unlimited floor life at <30 c / 85% relative humidity. not normally stored in moisture barrier bag. msl2 = out of bag storage for 1 year at <30 c / 60% relative humidity. supplied in moisture barrier bag. msl3 = out of bag storage for 168 hours at <30 c / 60% relative humidity. supplied in moisture barrier bag. the moisture sensitivity level for each package type is specified in ordering information. condition min max supply voltages (avdd) -0.3v +2.5v supply voltages (spkvdd) -0.3v +7.0v voltage range digital inputs (sclk, sda) gnd -0.3v +3.3v voltage range analogue inputs gnd -0.3v +3.3v operating temperature range, t a -40oc +85oc junction temperature, t jmax -40oc +150oc storage temperature after soldering -65oc +150oc recommended operating conditions parameter symbol min typ max unit charge pump supply range avdd 1.71 1.8 2.0 v speaker supply range spkvdd 2.7 3.6 5.5 v ground gnd 0 v
production data WM9090 w pd, november 2010, rev 4.1 7 electrical characteristics test conditions spkvdd = 3.6v, avdd=1.8v, gnd=0v, t a = +25 o c, 1khz signal, pga gain = 0db unless otherwise stated parameter test conditions min typ max unit analogue input pins maximum full-scale input signal level - in1p/n and in2p/n single-ended input 1.0 vrms differential input 1.0 input resistance differential or single- ended mode 8 10 15 k input programmable gain amplifiers (pgas) in1a, in1b, in2a and in2b minimum programmable gain -6 db maximum programmable gain +18 db mute attenuation 80 db common mode rejection ratio differential mode (217hz input) 45 db output programmable gain amplifiers (pgas) spkvol, hpout1lvol and hpout1rvol minimum programmable gain -57 db maximum programmable gain +6 db programmable gain step size 1 db mute attenuation hpout1lvol and hpout1rvol 75 db spkvol 66 db speaker output programmable gain spkoutlboost programmable gain spkoutlboost=111 11.5 12 12.5 db spkoutlboost=110 8.5 9 9.5 spkoutlboost=101 7 7.5 8 spkoutlboost=100 5.5 6 6.5 spkoutlboost=011 4 4.5 5 spkoutlboost=010 2.5 3 3.5 spkoutlboost=001 1 1.5 2 spkoutlboost=000 -0.75 0 0.75 headphone driver audio performance (r l = 16 ) snr (a-weighted) path from in1p/n or in2p/n 90 96 db thd (p o =20mw) -82 db thd+n (p o =20mw) -80 -72 db thd (p o =5mw) -81 db thd+n (p o =5mw) -79 db crosstalk (l/r) 72 db psrr avdd with 100mvpk-pk at 217hz (note 1) 82 db spkvdd with 100mvpk-pk at 217hz 85 dc offset magnitude after dc servo calibration 0.3 2 mv output power 0.1% thd+n 31 mw 1% thd+n 34 minimum headphone resistance normal operation 15 device survival with load indefinitely applied 1 headphone capacitance 2 nf quiescent current 4 ma
WM9090 production data w pd, november 2010, rev 4.1 8 test conditions spkvdd = 3.6v, avdd=1.8v, gnd=0v, t a = +25 o c, 1khz signal, pga gain = 0db unless otherwise stated parameter test conditions min typ max unit speaker driver class d audio performance (r l =8 + 10 h btl) snr (a-weighted) speaker boost = 6db, 82 92 db thd (p o =500mw) speaker boost = 6db -75 db thd+n (p o =500mw) speaker boost = 6db -73 db psrr avdd with 100mvpk-pk at 217hz (note 1) 75 db spkvdd with 100mvpk-pk at 217hz 70 db dc offset at load 5 mv efficiency speaker boost = 6db, 0dbfs input 80 89 % output power spkvdd=5.0v, thd+n 1%, speaker boost = 12db 1300 mw spkvdd=4.2v, thd+n 1%, speaker boost = 12db 950 mw spkvdd=3.7v, thd+n 1%, speaker boost = 12db 750 mw quiescent current 3 ma leakage currents svdd leakage current 0.2 a hpvdd leakage current vmid_ena = 0, vmid_buf_ena = 0, and tshut_ena = 0 1 a analogue reference level vmid midrail reference voltage -3% avdd/2 +3% v charge pump start-up time 500 s supply voltage 1.71 2.0 v cpvoutp normal mode avdd v low power mode avdd/2 cpvoutn normal mode -avdd v low power mode -avdd/2 flyback capacitor (between cpca and cpcb) at 2v 1 2.2 f cpvoutp capacitor at 2v 2 2.2 f cpvoutn capacitor at 2v 2 2.2 f digital input / output input high level 0.7 avdd v input low level 0.3 avdd v output high level i ol = 1ma 0.7 avdd v output low level i oh = -1ma 0.3 avdd v input capacitance 10 pf input leakage -0.9 0.9 ua start-up time start up time speaker and headphone -35 ms note 1: total system psrr with external dc-dc or ldo will be higher
production data WM9090 w pd, november 2010, rev 4.1 9 terminology 1. signal-to-noise ratio (db) ? snr is a measure of the difference in level between the maximum full scale output signal and the output with no input signal applied. 2. total harmonic distortion (db) ? thd is the level of the rms value of the sum of harmonic distortion products relative to the amplitude of the measured output signal. 3. total harmonic distortion plus noise (db) ? thd+n is the level of the rms value of the sum of harmonic distortion products plus noise in the specified bandwidth relative to the amplitude of the measured output signal. 4. crosstalk (l/r) (db) ? left-to-right and right-to-left channel crosstalk is the measured signal level in the idle channel at the test signal frequency relative to the signal level at the output of the active channel. the active channel is configured and supplied with an appropriate input signal to drive a full scale output, with signal measured at the output of the associated idle channel. 5. mute attenuation ? this is a measure of the difference in level between the full scale output signal and the output with mute applied. 6. all performance measurements carried out with 20khz low pass filter, and where noted an a-weighted filter. failure to use such a filter will result in higher thd and lower snr readings than are found in the electrical characteristics. the low pass filter removes out of band noise; although it is not audible it may affect dynamic specification values.
WM9090 production data w pd, november 2010, rev 4.1 10 performance plots
production data WM9090 w pd, november 2010, rev 4.1 11 typical performance power consumption svdd hpvdd isvdd ihpvdd total power (v) (v) ( a) ( a) ( w) all supplies except svdd disabled 3.6 0.0 0.2 0.0 0.72 all supplies enabled vmid_ena = 0, vmid_buf_ena = 0, 3.6 1.8 0.2 2 4.3 spkkvdd ldo1vdd ispkvdd ildo1vdd total pow er (v) (v) (ma) (ma) (mw) in1+/in1- stereo to headphone 16ohm load 3.6 1.8 0.00 3.36 6.0 in2+/in2- differential to speaker class d 8ohm + 10 h, +6db boost 3.6 1.8 2.54 1.56 12.0 speaker shutdown leakage mode other settings battery leakage mode other settings headphone notes: 1. power in the load is included 2. all figures are quoted at ta = 25 c 3. all figures are quoted as quiescent current unless otherwise stated
WM9090 production data w pd, november 2010, rev 4.1 12 audio signal paths diagram hpoutl spkoutn spkoutp spkmixl mixoutl mixoutr spkoutlboost hpout1lvol spklvol hpout1l_mute hpout1l_vol[5:0] spkoutl_mute spkoutl_vol[5:0] spkmixl_to_spkoutl spkoutl_boost[2:0] spkoutl_ena spkmix_ena mixoutl_ena hpout1l_ena in1a in1b in1b_ena in1a_mute in1a_vol[2:0] in1a_ena in1b_mute in1b_vol[2:0] + in1a_to_spkmix / in1a_spkmix_vol in1b_to_spkmix / in1b_spkmix_vol in2a_to_spkmix / in2a_spkmix_vol in2b_to_spkmix / in2b_spkmix_vol in1a_to_mixoutl / in1a_mixoutl_vol in2a_to_mixoutl / in2a_mixoutl_vol spklvol_ena spkmix_mute mixoutl_mute hpoutr dc offset correction hpout1rvol hpout1r_mute hpout1r_vol[5:0] hpout1r_ena dc offset correction in1_diff in1p in1n + mixoutr_ena + in1a_to_mixoutr / in1a_mixoutr_vol in1b_to_mixoutr / in1b_mixoutr_vol in2a_to_mixoutr / in2a_mixoutr_vol in2b_to_mixoutr / in2b_mixoutr_vol mixoutr_mute in2a in2b in2b_ena in2a_mute in2a_vol[2:0] in2a_ena in2b_mute in2b_vol[2:0] in2_diff in2p in2n
production data WM9090 w pd, november 2010, rev 4.1 13 control interface timing sclk (input) sda t 4 t 3 start t 8 stop t 5 t 2 t 1 t 9 t 7 t 6 figure 1 control interface timing test conditions spkvdd = 3.6v, avdd=1.8v, gnd=0v, t a = +25 o c, 1khz signal, pga gain = 0db unless otherwise stated parameter symbol min typ max unit sclk frequency 400 khz sclk low pulse-width t 1 1300 ns sclk high pulse-width t 2 600 ns hold time (start condition) t 3 600 ns setup time (start condition) t 4 600 ns data setup time t 5 100 ns sda, sclk rise time t 6 300 ns sda, sclk fall time t 7 300 ns setup time (stop condition) t 8 600 ns data hold time t 9 900 ns pulse width of spikes that will be suppressed t ps 0 5 ns
WM9090 production data w pd, november 2010, rev 4.1 14 device description introduction the WM9090 is an ultra-low power, high quality audio subsystem, including a headphone and speaker driver. its flexible architecture is designed to interface with a wide range of analogue components. the small 2.0 x 2.5mm footprint makes it ideal for portable applications such as mobile handsets. four flexible analogue input pins allow interfacing to up to four single-ended sources (eg. two stereo signal pairs). a differential input can also be accommodated if required. connection to an external voice codec, fm radio, melody ic or generic line input are all fully supported. signal routing to the output mixers provides maximum flexibility to support a wide variety of usage modes. three analogue output drivers are integrated, including a high quality class d speaker driver supporting 750mw output power at 3.7v. a configurable automatic gain control (agc) is provided on the speaker output path, to prevent clipping or power overload at the loudspeaker. ground-referenced stereo headphone outputs are also provided; these are powered from an integrated charge pump, enabling high quality, power efficient headphone playback. the ground- referenced design reduces power consumption, improves bass response, and enables direct headphone connection without any dc blocking capacitors. a dc servo circuit is provided for dc offset measurement and correction, thereby suppressing pops and reducing power consumption. internal differential signal routing and amplifier configurations have been optimised to provide the lowest possible power consumption for a wide range of usage scenarios, including voice calls and music playback. the speaker drivers offer low leakage and high psrr; this enables direct connection to a lithium battery. the speaker driver provides eight levels of boost gain to allow output signal levels to be maximised for many commonly-used s pkvdd/avdd combinations. an integrated oscillator is provided to support all the WM9090 clocking requirements, including the class d switching clock, headphone charge pump and dc servo control. the WM9090 is controlled via a standard 2-wire i2c interface, providing full software control of all features, together with device register readback. the interface provides support for i/o voltages up to 2.7v. an integrated control write sequencer enables automatic scheduling of control sequences; commonly-used signal configurations may be selected using ready-programmed sequences, including time-optimised control of the WM9090 pop suppression features. unused circuitry can be disabled under software control, in order to save power; low leakage currents enable extended standby/off time in portable battery-powered applications.
production data WM9090 w pd, november 2010, rev 4.1 15 input signal path the WM9090 supports two differential analogue input channels, configurable in a number of combinations: ? up to two differential line inputs to analogue mixers ? up to four single-ended line inputs to analogue mixers the inputs may be mixed together or independently routed to different combinations of output drivers. the WM9090 input signal paths and control registers are illustrated in figure 2. figure 2 control registers for input signal path
WM9090 production data w pd, november 2010, rev 4.1 16 line inputs all of the analogue input pins are designed as line inputs. these pins can be configured as single- ended or differential inputs, with flexible routing options and gain controls suitable for many different usage cases. these inputs provide a high gain path for low input signal levels. the line input pins in1p and in1n provide a differential input path to pga in1a. if required, these input pins can be configured as two separate single-ended inputs to pgas in1a and in1b respectively. single ended configuration is selected by writing a 0 to the in1_diff register bit. the line input pins in2p and in2n provide a differential input path to pga in2a. if required, these input pins can be configured as two separate single-ended inputs to pgas in2a and in2b respectively. single ended configuration is selected by writing a 0 to the in2_diff register bit. signal path configuration to the input pgas is detailed later in this section. signal path configuration to the output mixers and speaker mixers is described in ?output signal path?. note that, by default, the analogue input pins are clamped to vmid in order to prevent audible pops caused by enabling the input paths. when one or more analogue input path is in use, the respective input clamp(s) must be disabled using the register bits described under ?power sequences and pop suppression control?. input pga enable the input pgas are enabled using register bits in1a_ena, in1b_ena, in2a_ena and in2b_ena, as described in table 1. the input pgas must be enabled for line input on the respective input pins. note that, for differential input on in1p and in1n, it is not necessary to enable pga in1b. note that, for differential input on in2p and in2n, it is not necessary to enable pga in2b. register address bit label default description r2 (02h) power management (2) 7 in1a_ena 0 in1a input pga enable 0 = disabled 1 = enabled 6 in1b_ena 0 in1b input pga enable 0 = disabled 1 = enabled (note this is only required for single-ended input on the in1n pin) 5 in2a_ena 0 in2a input pga enable 0 = disabled 1 = enabled 4 in2b_ena 0 in2b input pga enable 0 = disabled 1 = enabled (note this is only required for single-ended input on the in2n pin) table 1 input pga enable for normal operation of the input pgas, the reference voltage vmid and the bias current must also be enabled. see ?reference voltages and master bias? for details of the associated controls vmid_res and bias_ena.
production data WM9090 w pd, november 2010, rev 4.1 17 input pga configuration the input pgas can be configured in single-ended mode or differential mode, using the in1_diff and in2_diff register bits described in table 2. in single-ended mode, an input pin is routed to each individual pga. in differential mode, a pair of input pins is routed to pga in1a or in2a. register address bit label default description r22 (16h) in1 line control 1 in1_diff 1 pga in1a and in1b configuration 0 = single-ended mode 1 = differential mode r23 (17h) in2 line control 1 in2_diff 1 pga in2a and in2b configuration 0 = single-ended mode 1 = differential mode table 2 input pga configuration input pga volume control each of the four input pgas has an independently controlled gain range of -6db to +18db. the gains on the inverting and non-inverting inputs to the pgas are always equal. each input pga can be independently muted using the pga mute bits as described in table 3. note that, when input pins in1p and in1n are configured in differential mode, then pga in1b is not used, and the volume control is provided on pga in1a only. note that, when input pins in2p and in2n are configured in differential mode, then pga in2b is not used, and the volume control is provided on pga in2a only. the gain level of pga in1a and in2a differs between single-ended and differential mode. for example, a 0db volume setting provides 0db gain in differential mode, but in single-ended mode it will apply +6db gain. in single-ended mode, the in1a/in2a input pgas have a controlled gain range of 0db to +24db. in differential mode, these pgas have a controlled gain range of -6db to +18db. to prevent "zipper noise", a zero-cross function is provided on the input pgas. when this feature is enabled, volume updates will not take place until a zero-crossing is detected. in the case of a long period without zero-crossings, a timeout function is provided. when the zero-cross function is enabled, the volume will update after the timeout period if no earlier zero-cross has occurred. the timeout clock is enabled using toclk_ena, the timeout period is set by toclk_rate. see ?clocking control? for more information on these fields. the in1_vu and in2_vu bits control the loading of the input pga volume data. when in1_vu and in2_vu are set to 0, the pga volume data will be loaded into the respective control register, but will not actually change the gain setting. the in1a and in1b volume settings are both updated when a 1 is written to in1_vu; the in2a and in2b volume settings are both updated when a 1 is written to in2_vu. this makes it possible to update the gain of two single-ended input paths simultaneously. note that, in differential input modes, the volume update control bits in1_vu and/or in2_vu should always be set to 1. the input pga volume control register fields are described in table 3. register address bit label default description r24 (18h) in1 line input a volume 8 in1_vu n/a in1 volume update writing a 1 to this bit will cause in1a and in1b input pga volumes to be updated simultaneously 7 in1a_mute 1 in1a pga mute 0 = un-mute 1 = mute 6 in1a_zc 0 in1a pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only
WM9090 production data w pd, november 2010, rev 4.1 18 register address bit label default description 2:0 in1a_vol [2:0] 011 in1a volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db in1a volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db r25 (19h) in1 line input b volume 8 in1_vu n/a in1 volume update writing a 1 to this bit will cause in1a and in1b input pga volumes to be updated simultaneously 7 in1b_mute 1 in1b pga mute 0 = un-mute 1 = mute 6 in1b_zc 0 in1b pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 2:0 in1b_vol [2:0] 011 in1b volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db in1b volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db r26 (1ah) in2 line input a volume 8 in2_vu n/a input pga volume update writing a 1 to this bit will cause in2a and in2b input pga volumes to be updated simultaneously 7 in2a_mute 1 in2a pga mute 0 = un-mute 1 = mute
production data WM9090 w pd, november 2010, rev 4.1 19 register address bit label default description 6 in2a_zc 0 in2a pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 2:0 in2a_vol [2:0] 011 in2a volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db in2a volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db r27 (1bh) in2 line input b volume 8 in2_vu n/a input pga volume update writing a 1 to this bit will cause in2a and in2b input pga volumes to be updated simultaneously 7 in2b_mute 1 in2b pga mute 0 = un-mute 1 = mute 6 in2b_zc 0 in2b pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 2:0 in2b_vol [2:0] 011 in2b volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db in2b volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db table 3 input pga volume control
WM9090 production data w pd, november 2010, rev 4.1 20 output signal path the WM9090 output mixers provide a high degree of flexibility, allowing configurable operation of multiple signal paths through the device to a variety of analogue outputs. the outputs comprise a ground referenced headphone driver and class d loudspeaker driver. see ?analogue outputs? for further details of these outputs. the WM9090 output signal paths and control registers are illustrated in figure 3. figure 3 control registers for output signal path output signal paths enable the output mixers and drivers can be independently enabled and disabled as described in table 4. see ?power sequences and pop suppression control? for details of additional control bits relating to the headphone output configuration. register address bit label default description r1 (01h) power management (1) 12 spkoutl_ena 0 speaker output enable 0 = disabled 1 = enabled 9 hpout1l_ena 0 headphone output (hpoutl) input stage enable 0 = disabled 1 = enabled 8 hpout1r_ena 0 headphone output (hpoutr) input stage enable 0 = disabled 1 = enabled r3 (03h) power management 8 spklvol_ena 0 speaker pga enable 0 = disabled 1 = enabled
production data WM9090 w pd, november 2010, rev 4.1 21 register address bit label default description (3) 5 mixoutl_ena 0 mixoutl headphone mixer enable 0 = disabled 1 = enabled 4 mixoutr_ena 0 mixoutr headphone mixer enable 0 = disabled 1 = enabled 3 spkmix_ena 0 spkmix speaker mixer enable 0 = disabled 1 = enabled table 4 output signal paths enable speaker mixer control the signal path configuration registers for the speaker mixer are described in table 5. each of the input pgas in1a, in1b, in2a and in2b is independently selectable as an input to the speaker mixer. care should be taken when enabling more than one path to a speaker mixer in order to avoid clipping. the gain of each input path is adjustable using a selectable volume control in each path to facilitate this. the speaker mixer output can be muted or enabled using the spkmix_mute register bit. the speaker mixer volume is also controlled by the speaker output pga, as defined in table 6. register address bit label default description r54 (36h) speaker mixer 6 in1a_to_spkmix 0 in1a to spkmix enable 0 = disabled 1 = enabled 4 in1b_to_spkmix 0 in1b to spkmix enable 0 = disabled 1 = enabled 2 in2a_to_spkmix 0 in2a to spkmix enable 0 = disabled 1 = enabled 0 in2b_to_spkmix 0 in2b to spkmix enable 0 = disabled 1 = enabled r34 (22h) spkmixl attenuation 8 spkmix_mute 1 spkmix output mute 0 = un-mute 1 = mute 7:6 in1a_spkmix_vol 00 in1a to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 5:4 in1b_spkmix_vol 00 in1b to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db
WM9090 production data w pd, november 2010, rev 4.1 22 register address bit label default description 3:2 in2a_spkmix_vol 00 in2a to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 1:0 in2b_spkmix_vol [1:0] 00 in2b to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db table 5 speaker mixer (spkmix) control speaker output volume control the speaker output pga controls are shown in table 6. a zero-cross function is provided on the speaker output pga. note that the timeout clock toclk must be enabled when using the zero-cross function. see ?clocking control? for more information on the toclk control fields. the spkout_vu bit controls the l oading of the speaker pga volume data. this bit should be set to 1 whenever the spkoutl_vol register is updated. register address bit label default description r38 (26h) speaker volume left 8 spkout_vu n/a speaker output pga volume update writing a 1 to this bit will update the spkoutl volume. 7 spkoutl_zc 0 speaker output pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 6 spkoutl_mute 0 speaker output pga mute 0 = un-mute 1 = mute 5:0 spkoutl_vol [5:0] 39h (0db) speaker output pga volume -57db to +6db in 1db steps (see table 11 for output pga volume control range) table 6 speaker output pga control speaker boost mixer control the class d speaker driver also incorporates its own boost mixer. the boost mixer provides an additional ac gain (boost) function to shift signal levels between the avdd and spkvdd voltage domains for maximum output power. the ac gain (boost) function is described in the ?analogue outputs? section. the spkmixl_to_spkoutl register bit must be enabled when using the speaker output signal path, as described in table 7. note that this is the default condition. register address bit label default description r36 (24h) spkout mixers 4 spkmixl_to_spkou tl 1 spkmix to speaker output enable 0 = disabled 1 = enabled table 7 speaker boost mixer control
production data WM9090 w pd, november 2010, rev 4.1 23 headphone mixer control the headphone mixer configuration registers are described in table 8 for the left channel (mixoutl) and table 9 for the right channel (mixoutr). a subset of the available input pgas in1a, in1b, in2a and in2b is selectable as an input to each of the headphone mixers, as illustrated in figure 3. care should be taken when enabling more than one path to a headphone mixer in order to avoid clipping. the gain of each input path is adjustable using a selectable volume control in each path to facilitate this. the headphone mixer outputs can be muted or enabled using the mixoutl_mute and mixoutr_mute register bits. the headphone mixer volume is also controlled by the headphone output pgas, as defined in table 10. register address bit label default description r45 (2dh) output mixer1 6 in1a_to_mixoutl 0 in1a to mixoutl enable 0 = disabled 1 = enabled 2 in2a_to_mixoutl 0 in2a to mixoutl enable 0 = disabled 1 = enabled r47 (2fh) output mixer3 8 mixoutl_mute 1 mixoutl output mute 0 = un-mute 1 = mute 7:6 in1a_mixoutl_vol [1:0] 00 in1a to mixoutl volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 3:2 in2a_mixoutl_vol [1:0] 00 in2a to mixoutl volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db table 8 left output mixer (mixoutl) control register address bit label default description r46 (2eh) output mixer2 6 in1a_to_mixoutr 0 in1a to mixoutr enable 0 = disabled 1 = enabled 4 in1b_to_mixoutr 0 in1b to mixoutr enable 0 = disabled 1 = enabled 2 in2a_to_mixoutr 0 in2a to mixoutr enable 0 = disabled 1 = enabled 0 in2b_to_mixoutr 0 in2b to mixoutr enable 0 = disabled 1 = enabled r48 (30h) output mixer4 8 mixoutr_mute 1 mixoutr output mute 0 = un-mute 1 = mute
WM9090 production data w pd, november 2010, rev 4.1 24 register address bit label default description 7:6 in1a_mixoutr_vol [1:0] 00 in1a to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 5:4 in1b_mixoutr_vol [1:0] 00 in1b to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 3:2 in2a_mixoutr_vol [1:0] 00 in2a to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 1:0 in2b_mixoutr_vol [1:0] 00 in2b to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db table 9 right output mixer (mixoutr) control headphone output volume control the headphone output pga controls are shown in table 10. the hpout1_vu bits control the loading of the headphone pga volume data. when hpout1_vu is set to 0, the volume control data will be loaded into the respective control register, but will not actually change the gain setting. the headphone pga volume settings are both updated when a 1 is written to either hpout1_vu bit. this makes it possible to update the gain of the left and right output paths simultaneously. a zero-cross function is provided on the headphone output pgas. note that the timeout clock toclk must be enabled when using the zero-cross function. see ?clocking control? for more information on the toclk control fields. when the zero-cross function is enabled (using hpout1l_zc or hpout1r_zc), it will only become effective after the respective pga gain (or mute) has been changed in two or more subsequent register writes. to guarantee zero cross functionality, it is recommended to enable zero cross and toggle the respective mute (hpout1l_mute or hpout1r_mute) before enabling the headphone output. alternatively, the zero-cross function can be ensured by updating the pga gain register (hpout1l_vol or hpout1r_vol) in two successive register writes - decrementing then incrementing the setting by 1 gain step ? after the zero-cross enable bits have been set.
production data WM9090 w pd, november 2010, rev 4.1 25 register address bit label default description r28 (1ch) left output volume 8 hpout1_vu n/a headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1l_zc 0 left headphone output pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 6 hpout1l_mute 0 left headphone output pga mute 0 = un-mute 1 = mute 5:0 hpout1l_vol [5:0] 2dh (-12db) left headphone output pga volume -57db to +6db in 1db steps (see table 11 for output pga volume control range) r29 (1dh) right output volume 8 hpout1_vu n/a headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1r_zc 0 right headphone output pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 6 hpout1r_mute 0 right headphone output pga mute 0 = un-mute 1 = mute 5:0 hpout1r_vol [5:0] 2dh (-12db) right headphone output pga volume -57db to +6db in 1db steps (see table 11 for output pga volume control range) table 10 headphone output pga control
WM9090 production data w pd, november 2010, rev 4.1 26 pga gain setting volume (db) pga gain setting volume (db) 0h -57 20h -25 1h -56 21h -24 2h -55 22h -23 3h -54 23h -22 4h -53 24h -21 5h -52 25h -20 6h -51 26h -19 7h -50 27h -18 8h -49 28h -17 9h -48 29h -16 ah -47 2ah -15 bh -46 2bh -14 ch -45 2ch -13 dh -44 2dh -12 eh -43 2eh -11 fh -42 2fh -10 10h -41 30h -9 11h -40 31h -8 12h -39 32h -7 13h -38 33h -6 14h -37 34h -5 15h -36 35h -4 16h -35 36h -3 17h -34 37h -2 18h -33 38h -1 19h -32 39h 0 1ah -31 3ah +1 1bh -30 3bh +2 1ch -29 3ch +3 1dh -28 3dh +4 1eh -27 3eh +5 1fh -26 3fh +6 table 11 output pga volume range
production data WM9090 w pd, november 2010, rev 4.1 27 automatic gain control (agc) the speaker output pga incorporates an automatic gain control (agc) circuit. this feature provides an automatic reduction in the speaker path gain in order to prevent clipping or power overload at the loudspeaker. the agc circuit provides two separate detection mechanisms to identify clipping or power overload respectively. each of these two mechanisms can be independently configured to suit the loudspeaker characteristics and the desired audio response. the two control mechanisms operate together to provide a flexible and effective automatic gain control feature. agc control agc is enabled by setting the agc_ena register bit, as defined in table 12. the agc can provide attenuation in the speaker output path - note that it can never apply additional gain to boost the signal level. the maximum extent of the agc attenuation can be controlled by setting the agc_mingain register. this field sets the lowest gain level that can be selected by the agc under signal clipping or power limiting conditions. when the signal conditions trigger the agc to apply attenuation, the speaker pga gain is controlled automatically by the agc. in order to prevent ?zipper noise? from the gain adjustment, the pga gain is only changed when a signal zero-cross is detected. when agc_ramp = 1, then the gain adjustment is restricted to a single gain step on each zero-cross. when agc_ramp = 0, then multiple gain steps may be applied, if necessary, on each zero-cross. selecting single gain steps only will result in a more gradual gain adjustment, but the agc may also be slower to remove signal clipping under this selection. note that the agc attenuation has a step size of 0.5db, providing a high resolution of signal level control. register address bit label default description r3 (03h) power management (3) 14 agc_ena 0 agc enable 0 = disabled 1 = enabled r100 (64h) agc control 2 8 agc_ramp 0 agc ramp control selects how the agc gain adjustment is applied 0 = multiple gains steps per zero- cross 1 = single gain step per zero-cross 5:0 agc_mingain [5:0] 00000 agc minimum gain -57db to +6db in 1db steps (see table 11 for agc minimum gain range) table 12 agc control agc anti-clip the agc incorporates two mechanisms for monitoring the signal conditions. one of these is the anti- clip threshold detection. the anti-clip function measures the speaker supply voltage, s pkvdd, and compares this with the output signal level. the difference between these voltages is referred to as the headroom; to avoid clipping, the signal level must always be less than the supply voltage. if the headroom is small (ie. the signal level is very close to the supply voltage), then clipping and distortion will occur. the anti-clip function can be disabled using the agc_clip_ena bit. it is enabled by default. the headroom threshold at which the agc will apply attenuation is set using the agc_clip_thr register. values in the range -200mv to 800mv can be selected. when the signal headroom is 300mv, the distortion (thd) is approximately 1%. therefore, if the anti-clip threshold is set to 300mv, then the agc would aim to limit the distortion to be no worse than 1% under maximum signal conditions. selecting a larger headroom threshold will avoid clipping across a wider range of operating conditions.
WM9090 production data w pd, november 2010, rev 4.1 28 when the agc applies signal attenuation triggered by the anti-clip threshold, the signal gain is reduced at a rate that is set by the agc_clip_atk register. when the anti-clip threshold is no longer met (due to the signal level reduction), then the agc increases the signal gain at a rate set by the agc_clip_dcy register. note that, when the anti-clip and power limiting thresholds are both triggered concurrently, then the signal gain is reduced at the rate set by the agc_clip_atk register and is increased at the rate set by agc_pwr_dcy. these fields are defined in table 13 and table 14 respectively. register address bit label default description r98 (62h) agc control 0 15 agc_clip_ena 1 enable agc anti-clip mode 0 = disabled 1 = enabled 11:8 agc_clip_thr [3:0] 0110 agc anti-clip threshold sets the headroom between spkpga output and spkvdd at which anti-clip limiting will be applied 0000 = -200mv 0001 = -150mv 0010 = -100mv 0011 = -50mv 0100 = 0mv 0101 = 50mv 0110 = 100mv 0111 = 150mv 1000 = 200mv 1001 = 250mv 1010 = 300mv 1011 = 400mv 1100 = 500mv 1101 = 600mv 1110 = 700mv 1111 = 800mv 6:4 agc_clip_atk [2:0] 100 agc anti-clip attack rate sets the rate of agc gain reduction when clipping is detected 000 = 0.6ms/6db 001 = 5.4ms/6db 010 = 10.2ms/6db 011 = 15.0ms/6db 100 = 19.8ms/6db 101 = 24.6ms/6db 110 = 29.4ms/6db 111 = 34.1ms/6db 2:0 agc_clip_dcy [2:0] 000 agc anti-clip decay rate sets the rate of agc gain increments after a period of clipping 000 = 120ms/6db 001 = 480ms/6db 010 = 820ms/6db 011 = 1170ms/6db 100 = 1640ms/6db 101 = 2050ms/6db 110 = 2730ms/6db 111 = 4100ms/6db table 13 agc anti-clip control
production data WM9090 w pd, november 2010, rev 4.1 29 agc power limiting the second mechanism used by the agc to monitor signal conditions is the power limit function. the speaker output voltage is measured, and the corresponding power output is determined. the power limiting function can be disabled using the agc_pwr_ena bit. it is enabled by default. the power output threshold at which the agc will apply attenuation is set using the agc_pwr_thr register. power levels in the range 300mw and 1050mw can be selected. note that these are rms power levels, assuming an 8 speaker. the power output threshold is also controlled by the agc_pwr_avg register. when agc_pwr_avg = 1, then the agc responds to the rms power level as quoted above. when agc_pwr_avg = 0, then the agc responds to the instantaneous voltage at the speaker output. selecting the rms power level is recommended, as this represents the average signal level. when the agc applies signal attenuation triggered by the power limit threshold, the signal gain is reduced at a rate that is set by the agc_pwr_atk register. when the power limit threshold is no longer met (due to the signal level reduction), then the agc increases the signal gain at a rate set by the agc_pwr_dcy register. note that, when the anti-clip and power limiting thresholds are both triggered concurrently, then the signal gain is reduced at the rate set by the agc_clip_atk register and is increased at the rate set by agc_pwr_dcy. these fields are defined in table 13 and table 14 respectively.
WM9090 production data w pd, november 2010, rev 4.1 30 register address bit label default description r99 (63h) agc control 1 15 agc_pwr_ena 1 enable agc power limit mode 0 = disabled 1 = enabled 12 agc_pwr_avg 0 agc power measurement mode 0 = instantaneous power 1 = rms power 11:8 agc_pwr_thr [2:0] 0000 agc power limit threshold sets the output level at which power limiting will be applied. assumes rms power mode and 8ohm speaker. 0000 = 300mw 0001 = 350mw 0010 = 400mw 0011 = 450mw 0100 = 500mw 0101 = 550mw 0110 = 600mw 0111 = 650mw 1000 = 700mw 1001 = 750mw 1010 = 800mw 1011 = 850mw 1100 = 900mw 1101 = 950mw 1110 = 1000mw 1111 = 1050mw 6:4 agc_pwr_atk [2:0] 000 agc power limiting attack rate sets the rate of agc gain reduction when power limiting is applied 000 = 120ms/6db 001 = 480ms/6db 010 = 840ms/6db 011 = 1200ms/6db 100 = 1680ms/6db 101 = 2040ms/6db 110 = 2760ms/6db 111 = 4080ms/6db 2:0 agc_pwr_dcy [2:0] 000 agc power limiting decay rate sets the rate of agc gain increments after a period of power limiting 000 = 1080ms/6db 001 = 1200ms/6db 010 = 1320ms/6db 011 = 1680ms/6db 100 = 2040ms/6db 101 = 2760ms/6db 110 = 4080ms/6db 111 = 8160ms/6db table 14 agc power limit control
production data WM9090 w pd, november 2010, rev 4.1 31 analogue outputs the speaker, headphone and earpiece outputs are highly configurable and may be used in many different ways. speaker output configurations the class d speaker output is driven by the speaker mixer, spkmix. the s peaker output operates in a btl configuration. fine volume control is available using the speaker output pga; a boost function is also available. see the ?output signal path? section for more information on the speaker mixing options. eight levels of signal boost are provided in order to deliver maximum output power for many commonly-used spkvdd/avdd combinations. the boost level from 0db to +12db is selected using the spkoutl_boost register field. to prevent pop noise, the spkoutl_boost register should not be modified while the speaker output is enabled. figure 4 illustrates the speaker output and the mixing and gain/boost options available. ultra-low leakage and high psrr allow the speaker supply spkvdd to be directly c onnected to a lithium battery. note that an appropriate spkvdd s upply voltage must be provided to prevent waveform clipping when speaker boost is used. dc gain is applied automatically to adjust the signal from vmid to s pkvdd/2. this provides optimum signal swing for maximum output power. figure 4 speaker output configuration and boost operation register address bit label default description r37 (25h) classd3 5:3 spkoutl_boost [2:0] 000 (1.0x) speaker output gain boost 000 = 1.00x boost (+0db) 001 = 1.19x boost (+1.5db) 010 = 1.41x boost (+3.0db) 011 = 1.68x boost (+4.5db) 100 = 2.00x boost (+6.0db) 101 = 2.37x boost (+7.5db) 110 = 2.81x boost (+9.0db) 111 = 3.98x boost (+12.0db) table 15 speaker boost control
WM9090 production data w pd, november 2010, rev 4.1 32 headphone output configurations the headphone output pins hpoutl and hpoutr are driven by the headphone output pgas. each pga has its own dedicated volume control, as described in the ?output signal path? section. the inputs to these pgas come from the respective output mixers mixoutl or mixoutr. the headphone output driver is capable of driving up to 35mw into a 16 ? load such as a stereo headset or headphones. the outputs are ground-referenced, eliminating any requirement for ac coupling capacitors. this is achieved by having separate positive and negative supply rails powered by an on-chip charge pump. a dc servo circuit removes any dc offset from the headphone outputs, suppressing ?pop? noise and minimising power consumption. the charge pump and dc servo are described separately (see ?charge pump? and ?dc servo? respectively). the zobel network components should be connected to the headphone output pins hpoutl and hpoutr for best audio performance in all applications. the components of the zobel network have the effect of dampening high frequency oscillations and instabilities that can arise outside the audio band under certain conditions. possible sources of these instabilities include the inductive load of a headphone coil or an active load in the form of an external line amplifier. the capacitance of lengthy cables or pcb tracks can also lead to amplifier instability. the zobel network should comprise of a 20 resistor and 100nf capacitor in series with each other, as illustrated in figure 5. figure 5 zobel network components for hpoutl and hpoutr clocking control the internal clocks for the WM9090 are derived from a common internal clock source, clk_ sys. this clock is the reference for the control write sequencer, class d switching amplifier, dc servo control and other internal functions. clk_sys is derived from an internal oscillator; this is controlled by the osc_ena register. the frequency of clk_sys is nominally 6mhz; internal dividers generate the other required clo cks from this reference. a slow clock, toclk, is used to set the timeout period for volume updates when zero-cross detect is used. this clock is derived from clk_sys and is enabled by toclk_ena. the slow clock frequency is selected using the programmable dividers toclk_rate, toclk_rate_x4 and toclk_rate_div16. see table 17 for a list of possible toclk rates. the clocking configuration is illustrated in figure 6. the control registers associated with WM9090 clocking are defined in table 16.
production data WM9090 w pd, november 2010, rev 4.1 33 osc_ena clk_sys f/n dc servo clock f/n class d switching clock f/n 256khz clock to charge pump, control write sequencer and other circuits f.n toclk_ena volume update timeout f/n f/1024 toclk_rate_x4 0 = f x 1 1 = f x 4 toclk_rate 0 = f / 2 1 = f / 1 internal oscillator f/n toclk_rate_div16 0 = f / 1 1 = f / 16 figure 6 clocking scheme register address bit label default description r1 (01h) power management (1) 3 osc_ena 0 clk_sys oscillator enable 0 = disabled 1 = enabled r6 (06h) clocking 1 15 toclk_rate 0 toclk rate divider (/2) 0 = f / 2 1 = f / 1 14 toclk_ena 0 toclk enable 0 = disabled 1 = enabled r66 (42h) clocking 4 8 toclk_rate_div16 0 toclk rate divider (/16) 0 = f / 1 1 = f / 16 7 toclk_rate_x4 0 toclk rate multiplier 0 = f x 1 1 = f x 4 table 16 clocking control toclk_rate toclk_rate_x4 toclk_rate_div16 toclk freq (hz) period (ms) 1 1 0 1000 1 0 1 0 500 2 1 0 0 250 4 0 0 0 125 8 1 1 1 62.5 16 0 1 1 31.25 32 1 0 1 15.625 64 0 0 1 7.8125 128 table 17 toclk rates
WM9090 production data w pd, november 2010, rev 4.1 34 control interface the WM9090 is controlled by writing to registers through a 2-wire serial control interface. readback is available for all registers, including chip id and power management status. the WM9090 is a slave device on the control interface; sclk is a clock input, while sda is a bi- directional data pin. to allow arbitration of multiple slaves (and/or multiple masters) on the same interface, the WM9090 transmits logic 1 by tri-stating the sda pin, rather than pulling it high. an external pull-up resistor is required to pull the sda line high so that the logic 1 can be recognised by the master. note that the control interface can support i/o levels up to 2.7v. in order to allow many devices to share a single 2-wire control bus, every device on the bus has a unique 8-bit device id (this is not the same as the 8-bit address of each register in the WM9090). the WM9090 device id is 1101_1100 (dch). the lsb of the device id is the read/write bit; this bit is set to logic 1 for ?read? and logic 0 for ?write?. the WM9090 operates as a slave device only. the controller indicates the start of data transfer with a high to low transition on sda while sclk remains high. this indicates that a device id, register address and data will follow. the WM9090 responds to the start condition and shifts in the next eight bits on sda (8-bit device id including read/write bit, msb first). if the device id received matches the device id of the WM9090, then the WM9090 responds by pulling sda low on the next clock pulse (ack). if the device id is not recognised or the r/w bit is ?1? when operating in write only mode, the WM9090 returns to the idle condition and waits for a new start condition and valid address. if the device id matches the device id of the WM9090, the data transfer continues as described below. the controller indicates the end of data transfer with a low to high transition on sda while sclk remains high. after receiving a complete address and data sequence the WM9090 returns to the idle state and waits for another start condition. if a start or stop condition is detected out of sequence at any point during data transfer (i.e. sda changes while sclk is high), the device returns to the idle condition. the WM9090 supports the following read and write operations: ? single write ? single read ? multiple write using auto-increment ? multiple read using auto-increment
production data WM9090 w pd, november 2010, rev 4.1 35 the sequence of signals associated with a single register write operation is illustrated in figure 7. figure 7 control interface register write the sequence of signals associated with a single register read operation is illustrated in figure 8. a1 d7 d1 a7 sda sclk device id device id a0 d6 b9 b8 note: the sda pin is driven by both the master and slave devices in turn to transfer device address, register address, data and ack responses r/w d0 b15 register address data bits b15 ? b8 start (write) ack ack ack r/w (read) b1 b0 b7 data bits b15 ? b8 ack stop ack rpt start figure 8 control interface register read the control interface also supports other register operations, as listed above. the interface protocol for these operations is summarised below. the terminology used in the following figures is detailed in table 18. note that multiple write and multiple read operations are supported using the auto-increment mode. this feature enables the host processor to access sequential blocks of the data in the WM9090 register map faster than is possible with single register operations. terminology description s start condition sr repeated start a acknowledge (sda low) a not acknowledge (sda high) p stop condition r/w readnotwrite 0 = write 1 = read [white field] data flow from bus master to WM9090 [grey field] data flow from WM9090 to bus master table 18 control interface terminology
WM9090 production data w pd, november 2010, rev 4.1 36 figure 9 single register write to specified address figure 10 single register read from specified address figure 11 multiple register write to specified address using auto-increment figure 12 multiple register read from specified address using auto-increment figure 13 multiple register read from last address using auto-increment
production data WM9090 w pd, november 2010, rev 4.1 37 control write sequencer the control write sequencer is a programmable unit that forms part of the WM9090 control interface logic. it provides the ability to perform a sequence of register write operations with the minimum of demands on the host processor - the sequence may be initiated by a single operation from the host processor and then left to execute independently. default sequences for start-up of each output driver and shut-down are provided (see ?default sequences? section). it is recommended that these default sequences are used unless changes become necessary. when a sequence is initiated, the sequencer performs a series of pre-defined register writes. the host processor informs the sequencer of the start index of the required sequence within the sequencer?s memory. at each step of the sequence, the contents of the selected register fields are read from the sequencer?s memory and copied into the WM9090 control registers. this continues sequentially through the sequencer?s memory until an ?end of sequence? bit is encountered; at this point, the sequencer stops and an interrupt status flag is asserted. for cases where the timing of the write sequence is important, a programmable delay can be set for specific steps within the sequence. note that the control write sequencer?s internal clock is derived from the internal clock clk_sys which must be enabled by setting osc_ena (see ?clocking control?). the clock division from clk_sys is handled transparently by the WM9090 without user intervention. initiating a sequence the register fields associated with running the control write sequencer are described in table 19. note that the operation of the control write sequencer also requires the internal clock clk_sys to be enabled via the osc_ena control bit (see ?clocking control?). the write sequencer is enabled by setting the wseq_ena bit. the start index of the required sequence must be written to the wseq_start_index field. setting the wseq_start bit initiates the sequencer at the given start index. the write sequencer can be interrupted by writing a logic 1 to the wseq_abort bit. the current status of the write sequencer can be read using two further register fields - when the wseq_busy bit is asserted, this indicates that the write sequencer is busy. note that, whilst the control write sequencer is running a sequence (indicated by the wseq_busy bit), normal read/write operations to the control registers cannot be supported. the index of the current step in the write sequencer can be read from the wseq_current_index field; this is an indicator of the sequencer?s progress. on completion of a sequence, this field holds the index of the last step within the last commanded sequence.
WM9090 production data w pd, november 2010, rev 4.1 38 register address bit label default description r70 (46h) write sequencer 0 8 wseq_ena 0 write sequencer enable 0 = disabled 1 = enabled r73 (49h) write sequencer 3 9 wseq_abort 0 writing a 1 to this bit aborts the current sequence and returns control of the device back to the serial control interface. 8 wseq_start 0 writing a 1 to this bit starts the write sequencer at the memory location indicated by the wseq_start_index field. the sequence continues until it reaches an ?end of sequence? flag. at the end of the sequence, this bit will be reset by the write sequencer. 5:0 wseq_start_ index [5:0] 00_0000 sequence start index. this is the memory location of the first command in the selected sequence. 0 to 15 = ram addresses 16 to 58 = rom addresses 59 to 63 = reserved r74 (4ah) write sequencer 4 0 wseq_busy (read only) 0 sequencer busy flag (read only). 0 = sequencer idle 1 = sequencer busy note: it is not possible to write to control registers via the control interface while the sequencer is busy. r75 (4bh) write sequencer 5 5:0 wseq_curre nt_index [5:0] (read only) 00_0000 sequence current index. this is the location of the most recently accessed command in the write sequencer memory. table 19 write sequencer control - initiating a sequence programming a sequence a sequence consists of write operations to data bits (or groups of bits) within the control registers. the register fields associated with programming the control write sequencer are described in table 20. for each step of the sequence being programmed, the sequencer index must be written to the wseq_write_index field. the values 0 to 15 correspond to all the available ram addresses within the write sequencer memory. (note that memory addresses 16 to 58 also exist, but these are rom addresses, which are not programmable.) having set the index as described above, register r71 must be written to (containing the control register address, the start bit position and the field width applicable to this step of the sequence). also, register r72 must be written to (containing the register data, the end of sequence flag and the delay time required after this step is executed). after writing to these two registers, the next step in the sequence may be programmed by updating wseq_write_index and repeating the procedure. wseq_addr is an 8-bit field containing the control register address in which the data should be written. wseq_data_start is a 4-bit field which identifies the lsb position within the selected control register to which the data should be written. for example, setting wseq_data_start = 0100 will select bit 4 as the lsb position; in this case, 4-bit data would be written to bits 7:4 and so on.
production data WM9090 w pd, november 2010, rev 4.1 39 wseq_data_width is a 3-bit field which identifies the width of the data block to be written. this enables selected portions of a control register to be updated without any concern for other bits within the same register, eliminating the need for read-modify-write procedures. values of 0 to 7 correspond to data widths of 1 to 8 respectively. for example, setting wseq_data_width = 010 will cause a 3-bit data block to be written. note that the maximum value of this field corresponds to an 8-bit data block; writing to register fields greater than 8 bits wide must be performed using two separate operations of the control write sequencer. wseq_data is an 8-bit field which contains the data to be written to the selected control register. the wseq_data_width field determines how many of these bits are written to the selected register; the most significant bits (above the number indicated by wseq_data_width) are ignored. wseq_delay is a 4-bit field which controls the waiting time between the current step and the next step in the sequence i.e. the delay occurs after the write in which it was called. the total delay time per step (including execution) is given by: t = k (2 wseq_delay + 8) where k = 62.5 s (under recommended operating conditions) this gives a useful range of execution/delay times from 562 s up to 2.048s per step. wseq_eos is a 1-bit field which indicates the end of sequence. if this bit is set, then the control write sequencer will automatically stop after this step has been executed. register address bit label default description r70 (46h) write sequencer 0 3:0 wseq_writ e_index [3:0] 0000 sequence write index. this is the memory location to which any updates to r71 and r72 will be copied. 0 to 15 = ram addresses r71 (47h) write sequencer 1 14:12 wseq_data _width [2:0] 000 width of the data block written in this sequence step. 000 = 1 bit 001 = 2 bits 010 = 3 bits 011 = 4 bits 100 = 5 bits 101 = 6 bits 110 = 7 bits 111 = 8 bits 11:8 wseq_data _start [3:0] 0000 bit position of the lsb of the data block written in this sequence step. 0000 = bit 0 ? 1111 = bit 15 7:0 wseq_addr [7:0] 0000_0000 control register address to be written to in this sequence step. r72 (48h) write sequencer 2 14 wseq_eos 0 end of sequence flag. this bit indicates whether the control write sequencer should stop after executing this step. 0 = not end of sequence 1 = end of sequence (stop the sequencer after this step). 11:8 wseq_dela y [3:0] 0000 time delay after executing this step. total time per step (including execution) = 62.5 s (2 wseq_delay + 8) 7:0 wseq_data [7:0] 0000_0000 data to be written in this sequence step. when the data width is less than 8 bits, then one or more of the msbs of wseq_data are ignored. it is recommended that unused bits be set to 0. table 20 write sequencer control - programming a sequence
WM9090 production data w pd, november 2010, rev 4.1 40 note that a ?dummy? write can be inserted into a control sequence by commanding the sequencer to write a value of 0 to bit 0 of register r255 (ffh). this is effectively a write to a non-existent register location. this can be used in order to create placeholders ready for easy adaptation of the sequence. for example, a sequence could be defined to power-up a mono signal path from in1p and in1n to headphone, with a ?dummy? write included to leave space for easy modification to a stereo signal path configuration. dummy writes can also be used in order to implement additional time delays between register writes. dummy writes are included in the headphone start-up sequence - see table 21. in summary, the control register to be written is set by the wseq_addr field. the data bits that are written are determined by a combination of wseq_data_start, wseq_data_width and wseq_data. this is illustrated below for an example case of writing to the vmid_res field within register r1 (01h). in this example, the start position is bit 01 (wseq_data_start = 0001b) and the data width is 2 bits (wseq_data_width = 0001b). with these settings, the control write sequencer would update the control register r1 [2:1] with the contents of wseq_data [1:0]. figure 14 control write sequencer example default sequences when the WM9090 is powered up, a number of control write sequences are available through default settings in both ram and rom memory locations. the pre-programmed default settings comprise a headphone start-up and a generic shut-down sequence. note that the start-up sequence does not include audio signal path or gain setting configuration; this must be implemented prior to scheduling the sequence. also, the start-up sequence does not include configuration of the master bias. the user must enable the clock and the master bias by setting osc_ena and vmid_ena prior to executing the start-up control sequence. these registers may be reset to 0 after executing the shut-down sequence. index addresses 0 to 15 may be programmed to users? own settings at any time, as described in ?programming a sequence?. users? own settings remain in memory regardless of wseq_ena, and are not affected by software resets (i.e. writing to register r0). however, any non-default sequences are lost when the device is powered down.
production data WM9090 w pd, november 2010, rev 4.1 41 the following default control sequences are provided: 1. headphone start-up - this sequence powers up the headphone driver and charge pump. it commands the dc servo to perform offset correction. this sequence is intended for enabling the headphone output after initial power-on, when dc offset correction has not previously been run. 2. generic shut-down - this sequence shuts down all of the WM9090 output drivers, dc servo and charge pump circuits. specific details of these sequences are provided below. note that the timings noted are typical values only. headphone start-up the headphone start-up sequence is initiated by writing 0100h to register 73 (49h). this single operation starts the control write sequencer at index address 0 (00h) and executes the sequence defined in table 21. this sequence takes approximately 40ms to run. wseq index register address width start data delay eos description 0 (00h) r76 (4ch) 1 bit bit 15 01h 6h 0b cp_ena = 1 (delay = 4.5ms) 1 (01h) r1 (01h) 3 bits bit 7 07h 0h 0b hpout1r_ena = 1 hpout1l_ena = 1 (delay = 0.5ms) 2 (02h) r96 (60h) 5 bits bit 1 11h 0h 0b hpout1r_dly = 1 hpout1l_dly = 1 (delay = 0.5ms) 3 (03h) r84 (54h) 7 bits bit 0 33h 9h 0b dcs_ena_chan_0 = 1 dcs_ena_chan_1 = 1 dcs_trig_startup_0 = 1 dcs_trig_startup_1 = 1 (delay = 32.5ms) 4 (04h) r255 (ffh) 1 bit bit 0 00h 5h 0b dummy write for additional delay (delay = 2.5ms) 5 (05h) r255 (ffh) 1 bit bit 0 00h 0h 0b dummy write for expansion (delay = 0.5ms) 6 (06h) r255 (ffh) 1 bits bit 0 00h 0h 0b dummy write for expansion (delay = 0.5ms) 7 (07h) r96 (60h) 6 bits bit 2 3bh 0h 1b hpout1l_rmv_short = 1 hpout1l_outp = 1 hpout1r_rmv_short =1 hpout1r_outp = 1 (delay = 0.5ms) table 21 headphone start-up default sequence
WM9090 production data w pd, november 2010, rev 4.1 42 generic shut-down the generic shut-down sequence can be initiated by writing 0110h to register 73 (49h). this single operation starts the control write sequencer at index address 16 (10h) and executes the sequence defined in table 22. this sequence takes approximately 2.8ms to run. wseq index register address width start data delay eos description 16 (10h) r96 (60h) 7 bits bit 1 00h 0h 0b hpout1r_dly = 0 hpout1r_outp = 0 hpout1r_rmv_short = 0 hpout1l_dly = 0 hpout1l_outp = 0 hpout1l_rmv_short = 0 (delay = 0.5ms) 17 (11h) r84 (54h) 2 bits bit 0 00h 0h 0b dcs_ena_chan_0 = 0 dcs_ena_chan_1 = 0 (delay = 0.5ms) 18 (12h) r1 (01h) 2 bits bit 8 00h 0h 0b hpout1r_ena = 0 hpout1l_ena = 0 (delay = 0.5ms) 19 (13h) r76 (4ch) 1 bit bit 15 00h 0h 0b cp_ena = 0 (delay = 0.5ms) 20 (14h) r1 (01h) 2 bits bit 12 00h 0h 1b spkoutl_ena = 0 (delay = 0.5ms) table 22 generic shut-down default sequence
production data WM9090 w pd, november 2010, rev 4.1 43 power sequences and pop suppression control the WM9090 incorporates a number of features, including wolfson?s silentswitch? technology, designed to suppress pops normally associated with start-up, shut-down or signal path control. to achieve maximum benefit from these features, careful attention is required to the sequence and timing of these controls. note that, under the recommended usage conditions of the WM9090, these features will be configured by running the default start-up and shut-down sequences as described in the ?control write sequencer? section. in these cases, the user does not need to set these register fields directly. additional bias controls, also pre-programmed into control write sequencer, are described in the ?reference voltages and master bias? section. input vmid clamps the analogue inputs are biased to vmid in normal operation. in order to avoid audible pops caused by enabling the inputs, the WM9090 can clamp the input pins to vmid when the relevant input stage is disabled. this allows pre-charging of the input ac coupling capacitors during power-up. the input vmid clamps connect the input pins to a buffered vmid reference. the buffered vmid reference is enabled by setting vmid_buf_ena. the vmid clamp is enabled on each pair of input pins independently using the register bits defined in table 23. register address bit label default description r22 (16h) in1 line control 0 in1_clamp 1 in1p and in1n input pad vmid clamp 0 = clamp de-activated 1 = clamp activated r23 (17h) in2 line control 0 in2_clamp 1 in2p and in2n input pad vmid clamp 0 = clamp de-activated 1 = clamp activated r57 (39h) antipop2 3 vmid_buf_ena 1 vmid buffer enable 0 = disabled 1 = enabled table 23 input vmid clamps headphone enable/disable the ground-referenced headphone outputs implement wolfson?s silentswitch? technology to minimise pop noise associated with enabling and disabling. the output pins hpoutl and hpoutr are shorted to gnd by default while the individual driver stages are enabled. as a final step the short circuit is then removed on each of these paths by setting the applicable fields hpout1l_rmv_short and hpout1r_rmv_short. the ground-referenced headphone output drivers are designed to suppress pops and clicks when enabled or disabled. however, it is necessary to control the drivers in accordance with a defined sequence in start-up and shut-down to achieve the pop suppression. it is also necessary to schedule the dc servo offset correction at the appropriate point in the sequence (see ?dc servo?). table 24 and table 25 describe the recommended sequences for enabling and disabling these output drivers. sequence headphone enable step 1 hpout1l_ena = 1 hpout1r_ena = 1 step 2 hpout1l_dly = 1 hpout1r_dly = 1 step 3 dc offset correction step 4 hpout1l_outp = 1 hpout1l_rmv_short = 1 hpout1r_outp = 1 hpout1r_rmv_short = 1 table 24 headphone output enable sequence
WM9090 production data w pd, november 2010, rev 4.1 44 sequence headphone disable step 1 hpout1l_rmv_short = 0 hpout1l_dly = 0 hpout1l_outp = 0 hpout1r_rmv_short = 0 hpout1r_dly = 0 hpout1r_outp = 0 step 2 hpout1l_ena = 0 hpout1r_ena = 0 table 25 headphone output disable sequence the register bits relating to pop suppression control are defined in table 26. register address bit label default description r1 (01h) power management (1) 9 hpout1l_ena 0 headphone output (hpoutl) input stage enable 0 = disabled 1 = enabled for pop-free operation, this bit should be set as the first stage of the hpoutl enable sequence. 8 hpout1r_ena 0 headphone output (hpoutr) input stage enable 0 = disabled 1 = enabled for pop-free operation, this bit should be set as the first stage of the hpoutr enable sequence. r96 (60h) analogue hp 0 7 hpout1l_rmv_ short 0 removes hpout1l short 0 = hpout1l short enabled 1 = hpout1l short removed for pop-free operation, this bit should be set to 1 as the final step in the hpoutl enable sequence. 6 hpout1l_outp 0 enables hpout1l output stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the dc offset cancellation has been performed. 5 hpout1l_dly 0 enables hpout1l intermediate stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the output signal path has been configured, and before the dc offset cancellation is scheduled this bit should be set with at least 20us delay after hpout1l_ena. 3 hpout1r_rmv_ short 0 removes hpout1r short 0 = hpout1r short enabled 1 = hpout1r short removed for pop-free operation, this bit should be set to 1 as the final step in the hpoutr enable sequence.
production data WM9090 w pd, november 2010, rev 4.1 45 register address bit label default description 2 hpout1r_outp 0 enables hpout1r output stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the dc offset cancellation has been performed. 1 hpout1r_dly 0 enables hpout1r intermediate stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the output signal path has been configured, and before the dc offset cancellation is scheduled this bit should be set with at least 20us delay after hpout1l_ena. table 26 pop suppression control recommended headphone start up sequence below is a recommended headphone start up sequence for suppressing pops. firstly program the following sequence into the control write sequencer. for further details refer to the ?programming a sequence? section. wseq index register address width start data delay eos description 0 (00h) r76 (4ch) 1 bits bit 15 01h 0h 0b enable charge pump 1 (01h) r3 (03h) 2 bits bit 4 03h 0h 0b enable output mixers 2 (02h) r46 (2dh) 1 bits bit 6 01h 0h 0b enable path from in1a to mixoutl 3 (03h) r47 (2eh) 1 bits bit 4 01h 0h 0b enable path from in1b to mixoutr 4 (04h) r48 (2fh) 1 bits bit 8 00h 0h 0b un-mute mixoutl 5 (05h) r49 (30h) 1 bits bit 8 00h 0h 0b un-mute mixoutr 6 (06h) r28 (1ch) 1 bits bit 8 01h 0h 0b hpout1l_vol=-12db and update 7 (07h) r29 (1dh) 1 bits bit 8 01h 0h 0b hpout1r_vol=-12db and update 8 (08h) r1 (01h) 2 bits bit 8 03h 0h 0b enable hpoutl/r 9 (0ah) r96 (60h) 6 bits bit 0 22h 0h 0b enable hp dly 10 (0bh) r84 (54h) 6 bits bit 0 33h 9h (32.5ms) 0b enable dc servo and start calibration 11 (0ch) r96 (60h) 8 bits bit 0 eeh 0h 1b enable headphone output
WM9090 production data w pd, november 2010, rev 4.1 46 secondly, initiate the sequence by performing the following set of register writes. register address data description r1 (01h) power management (1) 0x000b osc_ena=1, vmid_res=01, bias_ena=1 r2 (02h) power management (2) 0x60c0 enable input pgas r22 (16h) in1 line control 0x0000 in1+/- to s/e mode and disable input clamp r24 (18h) in1 line input a volume 0x0100 in1a volume=-6db and update r25 (19h) in1 line input b volume 0x0100 in1b volume=-6db and update r70 (46h) write sequencer 0 0x0100 write sequencer enable r71 (47h) write sequencer 0 0x0100 wseq_start=1
production data WM9090 w pd, november 2010, rev 4.1 47 charge pump the WM9090 incorporates a dual-mode charge pump which generates the supply rails for the headphone output drivers, hpout1l and hpout1r. the charge pump has a single supply input, avdd, and generates split rails cpvoutp and cpvoutn according to the selected mode of operation. the charge pump connections are illustrated in figure 15 (see ?electrical characteristics? for external component values). an input decoupling capacitor may also be required at avdd, depending upon the system configuration. figure 15 charge pump external connections the charge pump is enabled by setting the cp_ena bit. when enabled, the charge pump adjusts the output voltages (cpvoutp and cpvoutn) as well as the switching frequency in order to optimise the power consumption according to the operating conditions. the charge pump mode of operation is selected automatically according to the hpout1l_vol and hpout1r_vol register settings. under the recommended usage conditions of the WM9090, the charge pump will be enabled by running the default headphone start-up sequence as described in the ?control write sequencer? section. (similarly, it will be disabled by running the shut-down sequence.) in these cases, the user does not need to write to the cp_ena bit. note that the charge pump clock is derived from internal clock clk_sys which must be enabled by setting osc_ena (see ?clocking control?). the clock division from clk_sys is handled transparently by the WM9090 without user intervention. the cp_ena register bit is defined in table 27. register address bit label default description r76 (4ch) charge pump 1 15 cp_ena 0 charge pump control 0 = disabled 1 = enabled table 27 charge pump control
WM9090 production data w pd, november 2010, rev 4.1 48 dc servo the WM9090 provides a dc servo circuit on the headphone outputs hpoutl and hpoutr in order to remove dc offset from these ground-referenced outputs. when enabled, the dc servo ensures that the dc level of these outputs remains within 1mv of ground. removal of the dc offset is important because any deviation from gnd at the output pin will cause current to flow through the load under quiescent conditions, resulting in increased power consumption. additionally, the presence of dc offsets can result in audible pops and clicks at power up and power down. the recommended usage of the dc servo is initialised by running the default start-up sequence as described in the ?control write sequencer? section. the default start-up sequence executes a series of dc offset corrections, after which the measured offset correction is maintained on the headphone output channels. if a different usage is required, eg. if a periodic dc offset correction is required, then the default start-up sequence may be modified according to specific requirements. the relevant control fields are described in the following paragraphs and are defined in table 28. dc servo enable and start-up the dc servo circuit is enabled on hpoutl and hpoutr by setting dcs_ena_chan_0 and dcs_ena_chan_1 respectively. when the dc servo is enabled, the dc offset correction can be commanded in a number of different ways, including single-shot and periodically recurring events. writing a logic 1 to dcs_trig_startup_ n initiates a series of dc offset measurements and applies the necessary correction to the associated output; (?n? = 0 for left channel, 1 for right channel). on completion, the headphone output will be within 1mv of gnd. this is the dc servo mode selected by the default start-up sequence. completion of the dc offset correction triggered in this way is indicated by the dcs_startup_complete field, as described in table 28. typically, this operation takes 25ms per channel. writing a logic 1 to dcs_trig_dac_wr_ n causes the dc offset correction to be set to the value contained in the dcs_dac_wr_val_ n fields in register r87. this mode is useful if the required offset correction has already been determined and stored; it is faster than the dcs_trig_startup_ n mode, but relies on the accuracy of the stored settings. completion of the dc offset correction triggered in this way is indicated by the dcs_dac_wr_complete field, as described in table 28. typically, this operation takes 2ms per channel. when using either of the dc servo options above, the status of the dc offset correction process is indicated by the dcs_cal_complete field; this is the logical or of the dcs_startup_complete and dcs_dac_wr_complete fields. the dc servo control fields associated with start-up operation are described in table 28. it is important to note that, to minimise audible pops/clicks, the start-up and dac write modes of dc servo operation should be commanded as part of a control sequence which includes muting and shorting of the headphone outputs; a suitable sequence is defined in the default start-up sequence.
production data WM9090 w pd, november 2010, rev 4.1 49 register address bit label default description r84 (54h) dc servo 0 5 dcs_trig_start up_1 0 writing 1 to this bit selects start- up dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 4 dcs_trig_start up_0 0 writing 1 to this bit selects start- up dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 3 dcs_trig_dac_w r_1 0 writing 1 to this bit selects dac write dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 2 dcs_trig_dac_w r_0 0 writing 1 to this bit selects dac write dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 1 dcs_ena_chan_1 0 dc servo enable for hpout1r 0 = disabled 1 = enabled 0 dcs_ena_chan_0 0 dc servo enable for hpout1l 0 = disabled 1 = enabled r87 (57h) dc servo 3 15:8 dcs_dac_wr_va l1 [7:0] 0000 0000 dc offset value for hpout1r in dac write dc servo mode. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv 7:0 dcs_dac_wr_va l0 [7:0] 0000 0000 dc offset value for hpout1l in dac write dc servo mode. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv r88 (58h) dc servo readback 0 9:8 dcs_cal_compl ete [1:0] 00 dc servo complete status 0 = dac write or start-up dc servo mode not completed. 1 = dac write or start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l 5:4 dcs_dac_wr_co mplete [1:0] 00 dc servo dac write status 0 = dac write dc servo mode not completed. 1 = dac write dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l
WM9090 production data w pd, november 2010, rev 4.1 50 register address bit label default description 1:0 dcs_startup_c omplete [1:0] 00 dc servo start-up status 0 = start-up dc servo mode not completed. 1 = start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l table 28 dc servo enable and start-up modes dc servo active modes the dc servo modes described above are suitable for initialising the dc offset correction circuit on the headphone outputs as part of a controlled start-up sequence which is executed before the signal path is fully enabled. additional modes are available for use whilst the signal path is active; these modes may be of benefit following a large change in signal gain, which can lead to a change in dc offset level. periodic updates may also be desirable to remove slow drifts in dc offset caused by changes in parameters such as device temperature. the dc servo circuit is enabled on hpout1l and hpout1r by setting dcs_ena_chan_0 and dcs_ena_chan_1 respectively, as described earlier in table 28. writing a logic 1 to dcs_trig_single_ n initiates a single dc offset measurement and adjustment to the associated output; (?n? = 0 for left channel, 1 for right channel). this will adjust the dc offset correction on the selected channel by no more than 1lsb (0.25mv). setting dcs_timer_period_01 to a non-zero value will cause a single dc offset measurement and adjustment to be scheduled on a periodic basis. periodic rates ranging from every 0.52s to in excess of 2hours can be selected. writing a logic 1 to dcs_trig_series_ n initiates a series of dc offset measurements and applies the necessary correction to the associated output. the number of dc servo operations performed is determined by dcs_series_no_01. a maximum of 128 operations may be selected, though a much lower value will be sufficient in most applications. the dc servo control fields associated with active modes (suitable for use on a signal path that is in active use) are described in table 29. register address bit label default description r84 (54h) dc servo 0 13 dcs_trig_single _1 0 writing 1 to this bit selects a single dc offset correction for hpout1r. in readback, a value of 1 indicates that the dc servo single correction is in progress. 12 dcs_trig_single _0 0 writing 1 to this bit selects a single dc offset correction for hpout1l. in readback, a value of 1 indicates that the dc servo single correction is in progress. 9 dcs_trig_series _1 0 writing 1 to this bit selects a series of dc offset corrections for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress.
production data WM9090 w pd, november 2010, rev 4.1 51 register address bit label default description 8 dcs_trig_series _0 0 writing 1 to this bit selects a series of dc offset corrections for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. r85 (55h) dc servo 1 11:5 dcs_series_no_ 01 [6:0] 010 1010 number of dc servo updates to perform in a series event. 0 = 1 updates 1 = 2 updates ... 127 = 128 updates 3:0 dcs_timer_peri od_01 [3:0] 1010 time between periodic updates. time is calculated as 0.256s x (2^period) 0000 = off 0001 = 0.52s 1010 = 266s (4min 26s) 1111 = 8519s (2hr 22s) table 29 dc servo active modes dc servo readback the current dc offset value for each headphone output channel can be read from registers r89 and r90, as described in table 30. note that these values may form the basis of settings that are subsequently used by the dc servo in dac write mode. register address bit label default description r89 (59h) dc servo readback 1 7:0 dcs_dac_wr_va l_1_rd 0000 0000 readback value for hpout1r. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv r90 (5ah) dc servo readback 2 7:0 dcs_dac_wr_va l_0_rd 0000 0000 readback value for hpout1l. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv table 30 dc servo readback
WM9090 production data w pd, november 2010, rev 4.1 52 reference voltages and master bias this section describes the analogue reference voltage and bias current controls. it also describes the vmid soft-start circuit for pop suppressed start-up and shut-down. the analogue circuits in the WM9090 require a mid-rail analogue reference voltage, vmid. this reference is generated from avdd via a programmable resistor chain. together with the external decoupling capacitor (connected to the vmidc pin), the programmable resistor chain results in a slow, normal or fast charging characteristic on vmid. vmid is enabled by setting the vmid_ena register bit. the programmable resistor chain is configured by vmid_res [1:0], and can be used to optimise the reference for normal operation, low power standby or for fast start-up as described in table 31. when vmid is enabled using vmid_ena, the WM9090 automatically controls vmid using a pop- suppression circuit to avoid a step change in vmid; this suppresses pop/click noise which could otherwise occur. by default, the 2 x 5k vmid divider is selected in order to allow fast start-up. for normal operation and lower power consumption, the vmid_res register should be updated after start-up to select another resistor value. the analogue circuits in the WM9090 require a bias current. the normal bias current is enabled by setting bias_ena. note that the normal bias current source requires vmid to be enabled also. register address bit label default description r1 (01h) power management (1) 2:1 vmid_res [1:0] 11 vmid divider enable and select 00 = vmid disabled (for off mode) 01 = 2 x 50k divider (for normal operation) 10 = 2 x 250k divider (for low power standby) 11 = 2 x 5k divider (for fast start-up) 0 bias_ena 0 enables the normal bias current generator (for all analogue functions) 0 = disabled 1 = enabled r57 (39h) antipop2 0 vmid_ena 0 enable vmid master bias current source 0 = disabled 1 = enabled table 31 reference voltages and master bias enable
production data WM9090 w pd, november 2010, rev 4.1 53 power management the WM9090 provides control registers that allow users to select which functions are active. for minimum power consumption, unused functions should be disabled. to minimise pop or click noise, it is important to enable or disable functions in the correct order. see ?power sequences and pop suppression control? for further details of recommended control sequences. register address bit label default description r1 (1h) power management (1) 12 spkoutl_ena 0 speaker output enable 0 = disabled 1 = enabled 9 hpout1l_ena 0 headphone output (hpoutl) input stage enable 0 = disabled 1 = enabled for pop-free operation, this bit should be set as the first stage of the hpoutl enable sequence. 8 hpout1r_ena 0 headphone output (hpoutr) input stage enable 0 = disabled 1 = enabled for pop-free operation, this bit should be set as the first stage of the hpoutr enable sequence. 2:1 vmid_res [1:0] 00 vmid divider enable and select 00 = vmid disabled (for off mode) 01 = 2 x 50k divider (for normal operation) 10 = 2 x 250k divider (for low power standby) 11 = 2 x 5k divider (for fast start-up) 0 bias_ena 0 enables the normal bias current generator (for all analogue functions) 0 = disabled 1 = enabled r2 (02h) power management (2) 14 tshut_ena 0 thermal sensor enable 0 = disabled 1 = enabled 13 tshut_opdis 1 thermal shutdown control (causes audio outputs to be disabled if an over-temperature occurs. the thermal sensor must also be enabled.) 0 = disabled 1 = enabled 7 in1a_ena 0 in1a input pga enable 0 = disabled 1 = enabled 6 in1b_ena 0 in1b input pga enable 0 = disabled 1 = enabled (note this is only required for single- ended input on the in1n pin) 5 in2a_ena 0 in2a input pga enable 0 = disabled 1 = enabled
WM9090 production data w pd, november 2010, rev 4.1 54 register address bit label default description 4 in2b_ena 0 in2b input pga enable 0 = disabled 1 = enabled (note this is only required for single- ended input on the in2n pin) r3 (03h) power management (3) 8 spklvol_ena 0 speaker pga enable 0 = disabled 1 = enabled 5 mixoutl_ena 0 mixoutl headphone mixer enable 0 = disabled 1 = enabled 4 mixoutr_ena 0 mixoutr headphone mixer enable 0 = disabled 1 = enabled 3 spkmix_ena 0 spkmix speaker mixer enable 0 = disabled 1 = enabled r57 (39h) antipop2 2 startup_bias_ ena 0 enables the start-up bias current generator 0 = disabled 1 = enabled r70 (46h) write sequencer 0 8 wseq_ena 0 write sequencer enable 0 = disabled 1 = enabled r76 (4ch) charge pump 1 15 cp_ena 0 charge pump control 0 = disabled 1 = enabled r84 (54h) dc servo 0 1 dcs_ena_chan _1 0 dc servo enable for hpout1r 0 = disabled 1 = enabled 0 dcs_ena_chan _0 0 dc servo enable for hpout1l 0 = disabled 1 = enabled table 32 power management
production data WM9090 w pd, november 2010, rev 4.1 55 thermal shutdown the WM9090 incorporates a temperature sensor which detects when the device temperature is within normal limits or if the device is approaching a hazardous temperature condition. the temperature status can be polled at any time by reading the tshut register bit. the temperature sensor can be configured to automatically disable the audio outputs of the WM9090 in response to an over-temperature condition (approximately 150oc). the temperature sensor is enabled by setting the tshut_ena register bit. when the tshut_opdis is also set, then a device over-temperature condition will cause the speaker output (spkoutp and spkoutn) to be disabled; this res ponse is likely to prevent any damage to the device attributable to the large currents of the speaker output driver. when the temperature sensor is enabled, the temperature status can be read from the tshut register bit. note that, to prevent pops and cli cks, tshut_ena and tshut_opdis should only be updated whilst the speaker and headphone outputs are disabled. register address bit label default description r2 (02h) power management (2) 15 tshut (read only) 0 thermal shutdown status 0 = normal temperature 1 = over temperature 14 tshut_ena 1 thermal sensor enable 0 = disabled 1 = enabled 13 tshut_opdis 1 thermal shutdown control (causes audio outputs to be disabled if an overtemperature occurs. the thermal sensor must also be enabled.) 0 = disabled 1 = enabled table 33 thermal shutdown software reset and chip id a software reset can be commanded by writing to register r0. this is a read-only register field and the contents will not be affected by writing to this register. register address bit label default description r0 (00h) software reset 15:0 sw_reset [15:0] writing to this register causes a software reset. table 34 chip reset and id
WM9090 production data w pd, november 2010, rev 4.1 56 register map dec addrhex addrname 1514131211109876543210 bin default 0 00 software reset 1001_0000_1001_0011 1 01 power management (1) 000 spkoutl_ena 00 hpout1l_e na hpout1r_ ena 0000osc_ena bias_ena 0000_0000_p000_0110 2 02 power management (2) tshut tshut_ena tshut_op dis 00000in1a_enain1b_enain2a_enain2b_ena0000 0110_0000_0000_0000 3 03 power management (3) 0agc_ena00000 spklvol_e na 00 mixoutl_e na mixoutr_e na spkmix_en a 000 0000_0000_0000_0000 6 06 clocking 1 toclk_rat e toclk_ena00000111000000 0000_0001_1100_0000 22 16 in1 line control 00000000000000in1_diffin1_clamp 0000_0000_0000_0011 23 17 in2 line control 00000000000000in2_diffin2_clamp 0000_0000_0000_0011 24 18 in1 line input a volume 0000000in1_vuin1a_mutein1a_zc000 0000_000p_1000_0011 25 19 in1 line input b volume 0000000in1_vuin1b_mutein1b_zc000 0000_000p_1000_0011 26 1a in2 line input a volume 0000000in2_vuin2a_mutein2a_zc000 0000_000p_1000_0011 27 1b in2 line input b volume 0000000in2_vuin2b_mutein2b_zc000 0000_000p_1000_0011 28 1c left output volume 0000000 hpout1_v u hpout1l_z c hpout1l_m ute 0000_000p_0010_1101 29 1d right output volume 0000000 hpout1_v u hpout1r_z c hpout1r_ mute 0000_000p_0010_1101 34 22 spkmixl attenuation 0000000 spkmix_mu te 0000_0001_0000_0000 36 24 spkout mixers 00000000 0 00 spkmixl _ t o_spkout l 0000 0000_0000_0001_0000 37 25 classd3 00000001 0 1 000 0000_0001_0100_0000 38 26 speaker volume left 0000000 spkout_v u spkoutl_z c spkoutl_ mute 0000_000p_0011_1001 45 2d output mixer1 000000000 in1a_to_mi xoutl 000 in2a_to_mi xoutl 00 0000_0000_0000_0000 46 2e output mixer2 000000000 in1a_to_mi xoutr 0 in1b_to_mi xoutr 0 in2a_to_mi xoutr 0 in2b_to_mi xoutr 0000_0000_0000_0000 47 2f output mixer3 0000000 mixoutl_m ute 00 00 0000_0001_0000_0000 48 30 output mixer4 0000000 mixoutr_m ute 0000_0001_0000_0000 54 36 speaker mixer 000000000 in1a_to_s pkmix 0 in1b_to_s pkmix 0 in2a_to_spk mix 0 in2b_to_s pkmix 0000_0000_0000_0000 57 39 antipop2 000000000000 vmid_buf_ ena 10vmid_ena 0000_0000_0000_1101 66 42 clocking 4 0000000 toclk_rat e_div16 toclk_rat e_x4 1011110 0000_0000_0101_1110 in1a_spkmix_vol[1:0] in1a_mixoutl_vol[1:0] in2a_mixoutl_vol[1:0] spkoutl_boost[2:0] spkoutl_vol[5:0] in2b_spkmix_vol[1:0] in2a_spkmix_vol[1:0] in1b_spkmix_vol[1:0] hpout1r_vol[5:0] hpout1l_vol[5:0] sw_reset[15:0] vmid_res[1:0] in1a_vol[2:0] in1b_vol[2:0] in2a_vol[2:0] in2b_vol[2:0] in2b_mixoutr_vol[1:0] in1a_mixoutr_vol[1:0] in1b_mixoutr_vol[1:0] in2a_mixoutr_vol[1:0]
production data WM9090 w pd, november 2010, rev 4.1 57 dec addr hex addr name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 bin default 70 46 write sequencer 0 0000000wseq_ena0000 0000_0000_0000_0000 71 47 write sequencer 1 0 0000_0000_0000_0000 72 48 write sequencer 2 0 wseq_eos 0 0 0000_0000_0000_0000 73 49 write sequencer 3 000000 wseq_abo rt wseq_sta rt 00 0000_0000_0000_0000 74 4a write sequencer 4 000000000000000 wseq_bus y 0000_0000_0000_0000 75 4b write sequencer 5 0000000000 0000_0000_0000_0000 76 4c charge pump 1 cp_ena001111100100101 0001_1111_0010_0101 84 54 dc servo 0 00 dcs_trig_ single_1 dcs_trig_ single_0 00 dcs_trig_ series_1 dcs_trig_ series_0 00 dcs_trig_ startup_1 dcs_trig_ startup_0 dcs_trig_ dac_wr_1 dcs_trig_ dac_wr_0 dcs_ena_ chan_1 dcs_ena_ chan_0 00pp_00pp_00pp_pp00 85 55 dc servo 1 0000 0 0000_0101_0100_1010 86 56 dc servo 2 0000100000000111 0000_1000_0000_0111 87 57 dc servo 3 0000_0000_0000_0000 88 58 dc servo readback 0 000000 00 00 0000_0000_0000_0000 89 59 dc servo readback 1 00000000 0000_0000_0000_0000 90 5a dc servo readback 2 00000000 0000_0000_0000_0000 96 60 analogue hp 0 00000001 hpout1l_r mv_short hpout1l_o utp hpout1l_d ly 0 hpout1r _ rmv_shor t hpout1r_ outp hpout1r_ dly 0 0000_0001_0000_0000 98 62 agc control 0 agc_clip_ ena 000 0 0 1000_0000_0100_0000 99 63 agc control 1 agc_pwr_ ena 10 agc_pwr_ avg 00 1100_0000_0000_0000 100 64 agc control 2 0000001agc_ramp00 0000_0010_0000_0000 agc_clip_thr[3:0] agc_pwr_thr[3:0] agc_clip_dcy[2:0] agc_pwr_dcy[2:0] agc_pwr_atk[2:0] agc_clip_atk[2:0] agc_mingain[5:0] dcs_dac_wr_val_1_rd[7:0] dcs_startup_comple te[1:0] dcs_timer_period_01[3:0] dcs_dac_wr_comple te[1:0] dcs_dac_wr_val_0[7:0] dcs_dac_wr_val_0_rd[7:0] dcs_series_no_01[6:0] dcs_dac_wr_val_1[7:0] dcs_cal_complete[1: 0] wseq_addr[7:0] wseq_data[7:0] wseq_write_index[3:0] wseq_data_width[2:0] wseq_data_start[3:0] wseq_delay[3:0] wseq_start_index[5:0] wseq_current_index[5:0]
WM9090 production data w pd, november 2010, rev 4.1 58 register bits by address register address bit label default description refer to r0 (00h) software reset 15:0 sw_reset [15:0] writing to this register causes a software reset. register 00h software reset register address bit label default description refer to r1 (01h) power managemen t (1) 12 spkoutl_en a 0 speaker output enable 0 = disabled 1 = enabled 9 hpout1l_en a 0 headphone output (hpoutl) input stage enable 0 = disabled 1 = enabled for pop-free operation, this bit should be set as the first stage of the hpoutl enable sequence. 8 hpout1r_en a 0 headphone output (hpoutr) input stage enable 0 = disabled 1 = enabled for pop-free operation, this bit should be set as the first stage of the hpoutr enable sequence. 3 osc_ena 0 clk_sys oscillator e nable 0 = disabled 1 = enabled 2:1 vmid_res [1:0] 11 vmid divider enable and select 00 = vmid disabled (for off mode) 01 = 2 x 50k divider (for normal operation) 10 = 2 x 250k divider (for low power standby) 11 = 2 x 5k divider (for fast start-up) 0 bias_ena 0 enables the normal bias current generator (for all analogue functions) 0 = disabled 1 = enabled register 01h power management (1) register address bit label default description refer to r2 (02h) power managemen t (2) 15 tshut 0 thermal shutdown status 0 = normal temperature 1 = over temperature 14 tshut_ena 1 thermal sensor enable 0 = disabled 1 = enabled 13 tshut_opdis 1 thermal shutdown control (causes audio outputs to be disabled if an overtemperature occurs. the thermal sensor must also be enabled.) 0 = disabled 1 = enabled 7 in1a_ena 0 in1a input pga enable 0 = disabled 1 = enabled
production data WM9090 w pd, november 2010, rev 4.1 59 register address bit label default description refer to 6 in1b_ena 0 in1b input pga enable 0 = disabled 1 = enabled (note this is only required for single-ended input on the in1n pin) 5 in2a_ena 0 in2a input pga enable 0 = disabled 1 = enabled 4 in2b_ena 0 in2b input pga enable 0 = disabled 1 = enabled (note this is only required for single-ended input on the in2n pin) register 02h power management (2) register address bit label default description refer to r3 (03h) power managemen t (3) 14 agc_ena 0 agc enable 0 = disabled 1 = enabled 8 spklvol_en a 0 speaker pga enable 0 = disabled 1 = enabled note that spkmixl and spklvol are also enabled when spkoutl_ena is set. 5 mixoutl_en a 0 mixoutl headphone mixer enable 0 = disabled 1 = enabled 4 mixoutr_en a 0 mixoutr headphone mixer enable 0 = disabled 1 = enabled 3 spkmix_ena 0 spkmix speaker mixer enable 0 = disabled 1 = enabled register 03h power management (3) register address bit label default description refer to r6 (06h) clocking 1 15 toclk_rate 0 toclk rate divider (/2) 0 = f / 2 1 = f / 1 14 toclk_ena 0 toclk enable 0 = disabled 1 = enabled register 06h clocking 1
WM9090 production data w pd, november 2010, rev 4.1 60 register address bit label default description refer to r22 (16h) in1 line control 1 in1_diff 1 pga in1a and in1b configuration 0 = single-ended mode 1 = differential mode 0 in1_clamp 1 in1p and in1n input pad vmid clamp 0 = clamp de-activated 1 = clamp activated register 16h in1 line control register address bit label default description refer to r23 (17h) in2 line control 1 in2_diff 1 pga in2a and in2b configuration 0 = single-ended mode 1 = differential mode 0 in2_clamp 1 in2p and in2n input pad vmid clamp 0 = clamp de-activated 1 = clamp activated register 17h in2 line control register address bit label default description refer to r24 (18h) in1 line input a volume 8 in1_vu n/a in1 volume update writing a 1 to this bit will cause in1a and in1b input pga volumes to be updated simultaneously 7 in1a_mute 1 in1a pga mute 0 = un-mute 1 = mute 6 in1a_zc 0 in1a pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 2:0 in1a_vol [2:0] 011 in1a volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db in1a volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db register 18h in1 line input a volume
production data WM9090 w pd, november 2010, rev 4.1 61 register address bit label default description refer to r25 (19h) in1 line input b volume 8 in1_vu n/a in1 volume update writing a 1 to this bit will cause in1a and in1b input pga volumes to be updated simultaneously 7 in1b_mute 1 in1b pga mute 0 = un-mute 1 = mute 6 in1b_zc 0 in1b pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 2:0 in1b_vol [2:0] 011 in1b volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db in1b volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db register 19h in1 line input b volume register address bit label default description refer to r26 (1ah) in2 line input a volume 8 in2_vu n/a input pga volume update writing a 1 to this bit will cause in2a and in2b input pga volumes to be updated simultaneously 7 in2a_mute 1 in2a pga mute 0 = un-mute 1 = mute 6 in2a_zc 0 in2a pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 2:0 in2a_vol [2:0] 011 in2a volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db
WM9090 production data w pd, november 2010, rev 4.1 62 register address bit label default description refer to in2a volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db register 1ah in2 line input a volume register address bit label default description refer to r27 (1bh) in2 line input b volume 8 in2_vu n/a input pga volume update writing a 1 to this bit will cause in2a and in2b input pga volumes to be updated simultaneously 7 in2b_mute 1 in2b pga mute 0 = un-mute 1 = mute 6 in2b_zc 0 in2b pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 2:0 in2b_vol [2:0] 011 in2b volume (differential mode) 000 = -6db 001 = -3.5db 010 = 0db 011 = +3.5db 100 = +6db 101 = +12db 110 = +18db 111 = +18db in2b volume (single-ended mode) 000 = 0db 001 = +2.5db 010 = +6db 011 = +9.5db 100 = +12db 101 = +18db 110 = +24db 111 = +24db register 1bh in2 line input b volume register address bit label default description refer to r28 (1ch) left output volume 8 hpout1_vu n/a headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1l_zc 0 left headphone output pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only
production data WM9090 w pd, november 2010, rev 4.1 63 register address bit label default description refer to 6 hpout1l_mu te 0 left headphone output pga mute 0 = un-mute 1 = mute 5:0 hpout1l_vo l [5:0] 10_1101 left headphone output pga volume -57db to +6db in 1db steps register 1ch left output volume register address bit label default description refer to r29 (1dh) right output volume 8 hpout1_vu n/a headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1r_zc 0 right headphone output pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 6 hpout1r_mu te 0 right headphone output pga mute 0 = un-mute 1 = mute 5:0 hpout1r_vo l [5:0] 10_1101 right headphone output pga volume -57db to +6db in 1db steps register 1dh right output volume register address bit label default description refer to r34 (22h) spkmixl attenuation 8 spkmix_mut e 1 spkmix output mute 0 = un-mute 1 = mute 7:6 in1a_spkmix _vol [1:0] 00 in1a to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 5:4 in1b_spkmix _vol [1:0] 00 in1b to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 3:2 in2a_spkmix _vol [1:0] 00 in2a to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 1:0 in2b_spkmix _vol [1:0] 00 in2b to spkmix volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db register 22h spkmixl att enuation
WM9090 production data w pd, november 2010, rev 4.1 64 register address bit label default description refer to r36 (24h) spkout mixers 4 spkmixl_to_ spkoutl 1 spkmix to speaker output enable 0 = disabled 1 = enabled register 24h spkout mixers register address bit label default description refer to r37 (25h) classd3 5:3 spkoutl_bo ost [2:0] 000 speaker output gain boost 000 = 1.00x boost (+0db) 001 = 1.19x boost (+1.5db) 010 = 1.41x boost (+3.0db) 011 = 1.68x boost (+4.5db) 100 = 2.00x boost (+6.0db) 101 = 2.37x boost (+7.5db) 110 = 2.81x boost (+9.0db) 111 = 3.98x boost (+12.0db) register 25h classd3 register address bit label default description refer to r38 (26h) speaker volume left 8 spkout_vu n/a speaker output pga volume update writing a 1 to this bit will update the spkoutl volume. 7 spkoutl_zc 0 speaker output pga zero cross control 0 = change gain immediately 1 = change gain on zero cross only 6 spkoutl_mu te 0 speaker output pga mute 0 = un-mute 1 = mute 5:0 spkoutl_vo l [5:0] 11_1001 speaker output pga volume -57db to +6db in 1db steps register 26h speaker volume left register address bit label default description refer to r45 (2dh) output mixer1 6 in1a_to_mix outl 0 in1a to mixoutl enable 0 = disabled 1 = enabled 2 in2a_to_mix outl 0 in2a to mixoutl enable 0 = disabled 1 = enabled register 2dh output mixer1
production data WM9090 w pd, november 2010, rev 4.1 65 register address bit label default description refer to r46 (2eh) output mixer2 6 in1a_to_mix outr 0 in1a to mixoutr enable 0 = disabled 1 = enabled 4 in1b_to_mix outr 0 in1b to mixoutr enable 0 = disabled 1 = enabled 2 in2a_to_mix outr 0 in2a to mixoutr enable 0 = disabled 1 = enabled 0 in2b_to_mix outr 0 in2b to mixoutr enable 0 = disabled 1 = enabled register 2eh output mixer2 register address bit label default description refer to r47 (2fh) output mixer3 8 mixoutl_mu te 1 mixoutl output mute 0 = un-mute 1 = mute 7:6 in1a_mixout l_vol [1:0] 00 in1a to mixoutl volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 3:2 in2a_mixout l_vol [1:0] 00 in2a to mixoutl volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db register 2fh output mixer3 register address bit label default description refer to r48 (30h) output mixer4 8 mixoutr_mu te 1 mixoutr output mute 0 = un-mute 1 = mute 7:6 in1a_mixout r_vol [1:0] 00 in1a to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 5:4 in1b_mixout r_vol [1:0] 00 in1b to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db 3:2 in2a_mixout r_vol [1:0] 00 in2a to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db
WM9090 production data w pd, november 2010, rev 4.1 66 register address bit label default description refer to 1:0 in2b_mixout r_vol [1:0] 00 in2b to mixoutr volume control 00 = 0db 01 = -6db 10 = -9db 11 = -12db register 30h output mixer4 register address bit label default description refer to r54 (36h) speaker mixer 6 in1a_to_spk mix 0 in1a to spkmix enable 0 = disabled 1 = enabled 4 in1b_to_spk mix 0 in1b to spkmix enable 0 = disabled 1 = enabled 2 in2a_to_spk mix 0 in2a to spkmix enable 0 = disabled 1 = enabled 0 in2b_to_spk mix 0 in2b to spkmix enable 0 = disabled 1 = enabled register 36h speaker mixer register address bit label default description refer to r57 (39h) antipop2 3 vmid_buf_en a 1 vmid buffer enable 0 = disabled 1 = enabled 0 vmid_ena 1 enable vmid master bias current source 0 = disabled 1 = enabled register 39h antipop2 register address bit label default description refer to r70 (46h) write sequencer 0 8 wseq_ena 0 write sequencer enable. 0 = disabled 1 = enabled 3:0 wseq_write _index [3:0] 0000 sequence write index. this is the memory location to which any updates to r71 and r72 will be copied. 0 to 15 = ram addresses register 46h write sequencer 0
production data WM9090 w pd, november 2010, rev 4.1 67 register address bit label default description refer to r71 (47h) write sequencer 1 14:12 wseq_data_ width [2:0] 000 width of the data block written in this sequence step. 000 = 1 bit 001 = 2 bits 010 = 3 bits 011 = 4 bits 100 = 5 bits 101 = 6 bits 110 = 7 bits 111 = 8 bits 11:8 wseq_data_ start [3:0] 0000 bit position of the lsb of the data block written in this sequence step. 0000 = bit 0 ? 1111 = bit 15 7:0 wseq_addr [7:0] 0000_0000 control register address to be written to in this sequence step. register 47h write sequencer 1 register address bit label default description refer to r72 (48h) write sequencer 2 14 wseq_eos 0 end of sequence flag. this bit indicates whether the control write sequencer should stop after executing this step. 0 = not end of sequence 1 = end of sequence (stop the sequencer after this step). 11:8 wseq_delay [3:0] 0000 time delay after executing this step. total time per step (including execution) = 62.5us (2^wseq_delay + 8) 7:0 wseq_data [7:0] 0000_0000 data to be written in this sequence step. when the data width is less than 8 bits, then one or more of the msbs of wseq_data are ignored. it is recommended that unused bits be set to 0. register 48h write sequencer 2 register address bit label default description refer to r73 (49h) write sequencer 3 9 wseq_abor t 0 writing a 1 to this bit aborts the current sequence and returns control of the device back to the serial control interface. 8 wseq_start 0 writing a 1 to this bit starts the write sequencer at the memory location indicated by the wseq_start_index field. the sequence continues until it reaches an ?end of sequence? flag. at the end of the sequence, this bit will be reset by the write sequencer. 5:0 wseq_start _index [5:0] 00_0000 sequence start index. this is the memory location of the first command in the selected sequence. 0 to 15 = ram addresses 16 to 58 = rom addresses 59 to 63 = reserved register 49h write sequencer 3
WM9090 production data w pd, november 2010, rev 4.1 68 register address bit label default description refer to r74 (4ah) write sequencer 4 0 wseq_busy 0 sequencer busy flag (read only). 0 = sequencer idle 1 = sequencer busy note: it is not possible to write to control registers via the control interface while the sequencer is busy. register 4ah write sequencer 4 register address bit label default description refer to r75 (4bh) write sequencer 5 5:0 wseq_curr ent_index [5:0] 00_0000 sequence current index. this is the location of the most recently accessed command in the write sequencer memory. register 4bh write sequencer 5 register address bit label default description refer to r76 (4ch) charge pump 1 15 cp_ena 0 charge pump control 0 = disabled 1 = enabled register 4ch charge pump 1 register address bit label default description refer to r84 (54h) dc servo 0 13 dcs_trig_si ngle_1 0 writing 1 to this bit selects a single dc offset correction for hpout1r. in readback, a value of 1 indicates that the dc servo single correction is in progress. 12 dcs_trig_si ngle_0 0 writing 1 to this bit selects a single dc offset correction for hpout1l. in readback, a value of 1 indicates that the dc servo single correction is in progress. 9 dcs_trig_se ries_1 0 writing 1 to this bit selects a series of dc offset corrections for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 8 dcs_trig_se ries_0 0 writing 1 to this bit selects a series of dc offset corrections for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 5 dcs_trig_st artup_1 0 writing 1 to this bit selects start-up dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 4 dcs_trig_st artup_0 0 writing 1 to this bit selects start-up dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 3 dcs_trig_da c_wr_1 0 writing 1 to this bit selects dac write dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress.
production data WM9090 w pd, november 2010, rev 4.1 69 register address bit label default description refer to 2 dcs_trig_da c_wr_0 0 writing 1 to this bit selects dac write dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 1 dcs_ena_ch an_1 0 dc servo enable for hpout1r 0 = disabled 1 = enabled 0 dcs_ena_ch an_0 0 dc servo enable for hpout1l 0 = disabled 1 = enabled register 54h dc servo 0 register address bit label default description refer to r85 (55h) dc servo 1 11:5 dcs_series_ no_01 [6:0] 010_1010 number of dc servo updates to perform in a series event. 0 = 1 updates 1 = 2 updates ... 127 = 128 updates 3:0 dcs_timer_p eriod_01 [3:0] 1010 time between periodic updates. time is calculated as 0.256s x (2^period) 0000 = off 0001 = 0.52s 1010 = 266s (4min 26s) 1111 = 8519s (2hr 22s) register 55h dc servo 1 register address bit label default description refer to r87 (57h) dc servo 3 15:8 dcs_dac_w r_val_1 [7:0] 0000_0000 dc offset value for hpout1r in dac write dc servo mode. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv 7:0 dcs_dac_w r_val_0 [7:0] 0000_0000 dc offset value for hpout1l in dac write dc servo mode. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv register 57h dc servo 3 register address bit label default description refer to r88 (58h) dc servo readback 0 9:8 dcs_cal_co mplete [1:0] 00 dc servo complete status 0 = dac write or start-up dc servo mode not completed. 1 = dac write or start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l
WM9090 production data w pd, november 2010, rev 4.1 70 register address bit label default description refer to 5:4 dcs_dac_w r_complete [1:0] 00 dc servo dac write status 0 = dac write dc servo mode not completed. 1 = dac write dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l 1:0 dcs_startu p_complete [1:0] 00 dc servo start-up status 0 = start-up dc servo mode not completed. 1 = start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l register 58h dc servo readback 0 register address bit label default description refer to r89 (59h) dc servo readback 1 7:0 dcs_dac_w r_val_1_rd [7:0] 0000_0000 readback value for hpout1r. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv register 59h dc servo readback 1 register address bit label default description refer to r90 (5ah) dc servo readback 2 7:0 dcs_dac_w r_val_0_rd [7:0] 0000_0000 readback value for hpout1l. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv register 5ah dc servo readback 2 register address bit label default description refer to r96 (60h) analogue hp 0 7 hpout1l_rm v_short 0 removes hpout1l short 0 = hpout1l short enabled 1 = hpout1l short removed for pop-free operation, this bit should be set to 1 as the final step in the hpoutl enable sequence. 6 hpout1l_ou tp 0 enables hpout1l output stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the dc offset cancellation has been performed. 5 hpout1l_dl y 0 enables hpout1l intermediate stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the output signal path has been configured, and before the dc offset cancellation is scheduled this bit should be set with at least 20us delay after hpout1l_ena.
production data WM9090 w pd, november 2010, rev 4.1 71 register address bit label default description refer to 3 hpout1r_rm v_short 0 removes hpout1r short 0 = hpout1r short enabled 1 = hpout1r short removed for pop-free operation, this bit should be set to 1 as the final step in the hpoutr enable sequence. 2 hpout1r_ou tp 0 enables hpout1r output stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the dc offset cancellation has been performed. 1 hpout1r_dl y 0 enables hpout1r intermediate stage 0 = disabled 1 = enabled for pop-free operation, this bit should be set to 1 after the output signal path has been configured, and before the dc offset cancellation is scheduled this bit should be set with at least 20us delay after hpout1l_ena. register 60h analogue hp 0 register address bit label default description refer to r98 (62h) agc control 0 15 agc_clip_en a 1 enable agc anti-clip mode 0 = disabled 1 = enabled 11:8 agc_clip_th r [3:0] 0110 agc anti-clip threshold sets the headroom between spkpga output and spkvdd at which anti-clip limiting will be applied 0000 = -200mv 0001 = -150mv 0010 = -100mv 0011 = -50mv 0100 = 0mv 0101 = 50mv 0110 = 100mv 0111 = 150mv 1000 = 200mv 1001 = 250mv 1010 = 300mv 1011 = 400mv 1100 = 500mv 1101 = 600mv 1110 = 700mv 1111 = 800mv 6:4 agc_clip_at k [2:0] 100 agc anti-clip attack rate sets the rate of agc gain reduction when clipping is detected 000 = 0.6ms/6db 001 = 5.4ms/6db 010 = 10.2ms/6db 011 = 15.0ms/6db 100 = 19.8ms/6db 101 = 24.6ms/6db 110 = 29.4ms/6db 111 = 34.1ms/6db
WM9090 production data w pd, november 2010, rev 4.1 72 register address bit label default description refer to 2:0 agc_clip_dc y [2:0] 000 agc anti-clip decay rate sets the rate of agc gain increments after a period of clipping 000 = 120ms/6db 001 = 480ms/6db 010 = 820ms/6db 011 = 1170ms/6db 100 = 1640ms/6db 101 = 2050ms/6db 110 = 2730ms/6db 111 = 4100ms/6db register 62h agc control 0 register address bit label default description refer to r99 (63h) agc control 1 15 agc_pwr_e na 1 enable agc power limit mode 0 = disabled 1 = enabled 12 agc_pwr_av g 0 agc power measurement mode 0 = instantaneous power 1 = rms power 11:8 agc_pwr_th r [2:0] 0000 agc power limit threshold sets the output level at which power limiting will be applied. assumes rms power mode and 8ohm speaker. 0000 = 300mw 0001 = 350mw 0010 = 400mw 0011 = 450mw 0100 = 500mw 0101 = 550mw 0110 = 600mw 0111 = 650mw 1000 = 700mw 1001 = 750mw 1010 = 800mw 1011 = 850mw 1100 = 900mw 1101 = 950mw 1110 = 1000mw 1111 = 1050mw 6:4 agc_pwr_at k [2:0] 000 agc power limiting attack rate sets the rate of agc gain reduction when power limiting is applied 000 = 120ms/6db 001 = 480ms/6db 010 = 840ms/6db 011 = 1200ms/6db 100 = 1680ms/6db 101 = 2040ms/6db 110 = 2760ms/6db 111 = 4080ms/6db
production data WM9090 w pd, november 2010, rev 4.1 73 register address bit label default description refer to 2:0 agc_pwr_d cy [2:0] 000 agc power limiting decay rate sets the rate of agc gain increments after a period of power limiting 000 = 1080ms/6db 001 = 1200ms/6db 010 = 1320ms/6db 011 = 1680ms/6db 100 = 2040ms/6db 101 = 2760ms/6db 110 = 4080ms/6db 111 = 8160ms/6db register 63h agc control 1 register address bit label default description refer to r100 (64h) agc control 2 8 agc_ramp 0 agc ramp control selects how the agc gain adjustment is applied 0 = multiple gains steps per zero-cross 1 = single gain step per zero-cross 5:0 agc_mingain [5:0] 00_0000 agc minimum gain -57db to +6db in 1db steps register 64h agc control 2
WM9090 production data w pd, november 2010, rev 4.1 74 applications information recommended external components figure 16 below provides a summary of recommended external components for WM9090. note that the diagram does not include any components that are specific to the end application e.g. they do not include filtering on the speaker outputs (assume filterless class d operation), rf decoupling, or rf filtering for pins which connect to the external world i.e. headphone or speaker outputs. figure 16 recommended external components
production data WM9090 w pd, november 2010, rev 4.1 75 audio input paths the WM9090 provides 4 analogue audio inputs. each of these inputs is referenced to the internal dc reference, vmid. a dc blocking capacitor is required for each input pin used in the target application. the choice of capacitor is determined by the filter that is formed between that capacitor and the input impedance of the input pin. the circuit is illustrated in figure 17. figure 17 audio input path dc blocking capacitor if the input impedance is known, and the cut-off frequency is known, then the minimum capacitor value may be derived easily. however, it can be seen from the representation in figure 17 that the input impedance is not fixed in all applications but can vary with gain and boost amplifier settings. the choice of capacitor for a 20hz cut-off frequency is shown in table 35 for different input impedance conditions. the applicable input impedance can be found in the ?electrical characteristics? section of this datasheet. input impedance minimum capacitance for 20hz pass band 2k 4 f 15k 0.5 f 30k 0.27 f 60k 0.13 f table 35 audio input dc blocking capacitors using the figures in table 35, it follows that a 1 f capacitance for all input connections will give good results in most cases. tantalum electrolytic capacitors are particularly suitable as they offer high stability in a small package size. ceramic equivalents are a cost effective alternative to the superior tantalum packages, but care must be taken to ensure the desired capacitance is maintained at the avdd operating voltage. also, ceramic capacitors may show microphonic effects, where vibrations and mechanical conditions give rise to electrical signals. this is particularly problematic for microphone input paths where a large signal gain is required. a single capacitor is required for a line input or single-ended microphone connection. in the case of a differential connection, a dc blocking capacitor is required on both input pins.
WM9090 production data w pd, november 2010, rev 4.1 76 power supply decoupling electrical coupling exists particularly in digital logic systems where switching in one sub-system causes fluctuations on the power supply. this effect occurs because the inductance of the power supply acts in opposition to the changes in current flow that are caused by the logic switching. the resultant variations (or ?spikes?) in the power supply voltage can cause malfunctions and unintentional behavior in other components. a decoupling (or ?bypass?) capacitor can be used as an energy storage component which will provide power to the decoupled circuit for the duration of these power supply variations, protecting it from malfunctions that could otherwise arise. coupling also occurs in a lower frequency form when ripple is present on the power supply rail caused by changes in the load current or by limitations of the power supply regulation method. in audio components such as the WM9090, these variations can alter the performance of the signal path, leading to degradation in signal quality. a decoupling (or ?bypass?) capacitor can be used to filter these effects, by presenting the ripple voltage with a low impedance path that does not affect the circuit to be decoupled. these coupling effects are addressed by placing a capacitor between the supply rail and the corresponding ground reference. in the case of systems comprising multiple power supply rails, decoupling should be provided on each rail. the recommended power supply decoupling capacitors for WM9090 are listed below in table 36. power supply decoupling capacitor avdd 2.2 f ceramic spkvdd 0.1 f ceramic (see note) vmidc 2.2 f ceramic (see text below) table 36 power supply decoupling capacitors note: 0.1 f is required with 2.2 f a guide to the total required power rail capacitance. all decoupling capacitors should be placed as close as possible to the WM9090 device. the connection between gnd, the avdd decoupling capacitor and the main system ground should be made at a single point as close as possible to the gnd ball of the WM9090. the vmid capacitor is not, technically, a decoupling capacitor. however, it does serve a similar purpose in filtering noise on the vmid reference. the connection between gnd, the vmid decoupling capacitor and the main system ground should be made at a single point as close as possible to the gnd ball of the WM9090. due to the wide tolerance of many types of ceramic capacitors, care must be taken to ensure that the selected components provide the required capacitance across the required temperature and voltage ranges in the intended application. for most application the use of ceramic capacitors with capacitor dielectric x5r is recommended. headphone output path the headphone output on WM9090 is ground referenced and therefore does not require the large, expensive capacitors necessary for vmid-referenced solutions. for best audio performance, it is recommended to connect a zobel network to the audio output pins. this network should comprise of a 100nf capacitor and 20ohm resistor in series with each other (see ?analogue outputs? section). these components have the effect of dampening high frequency oscillations or instabilities that can arise outside the audio band under certain conditions. possible sources of these instabilities include the inductive load of a headphone coil or an active load in the form of an external line amplifier.
production data WM9090 w pd, november 2010, rev 4.1 77 class d speaker connections the WM9090 incorporates a class d speaker driver. as the class d output is a pulse width modulated (pwm) signal, the choice of speakers and tracking of signals is critical for ensuring good performance and reducing emi in this mode. the efficiency of the speaker drivers is affected by the series resistance between the WM9090 and the speaker (e.g. pcb track loss and inductor esr) as shown in figure 18. this resistance should be as low as possible to maximise efficiency. figure 18 speaker connection losses the class d output requires external filtering in order to recreate the audio signal. this may be implemented using a 2 nd order lc or 1 st order rc filter, or else may be achieved by using a loudspeaker whose internal inductance provides the required filter response. an lc or rc filter should be used if the loudspeaker characteristics are unknown or unsuitable, or if the length of the loudspeaker connection is likely to lead to emi problems. in applications where it is necessary to provide class d filter components, a 2 nd order lc filter is the recommended solution as it provides more attenuation at higher frequencies and minimises power dissipated in the filter when compared to a first order rc filter (lower esr). this maximises both rejection of unwanted switching frequencies and overall speaker efficiency. a suitable implementation is illustrated in figure 19. figure 19 class d output filter components
WM9090 production data w pd, november 2010, rev 4.1 78 a simple equivalent circuit of a loudspeaker consists of a serially connected resistor and inductor, as shown in figure 20. this circuit provides a low pass filter for the speaker output. if the loudspeaker characteristics are suitable, then the loudspeaker itself can be used in place of the filter components described earlier. this is known as ?filterless? operation. figure 20 speaker equivalent circuit for filterless operation for filterless class d operation, it is important to ensure that a speaker with suitable inductance is chosen. for example, if we know the speaker impedance is 8 ? and the desired cut-off frequency is 20khz, then the optimum speaker inductance may be calculated as: 8 loudspeakers typically have an inductance in the range 20 h to 100 h, however, it should be noted that a loudspeaker inductance will not be constant across the relevant frequencies for class d operation (up to and beyond the class d switching frequency). care should be taken to ensure that the cut-off frequency of the loudspeaker?s filtering is low enough to suppress the high frequency energy of the class d switching and, in so doing, to prevent speaker damage. the class d outputs of the WM9090 operate at much higher frequencies than is recommended for most speakers and it must be ensured that the cut-off frequency is low enough to protect the speaker.
production data WM9090 w pd, november 2010, rev 4.1 79 pcb layout considerations poor pcb layout will degrade the performance and be a contributory factor in emi, ground bounce and resistive voltage losses. all external components should be placed as close to the WM9090 device as possible, with current loop areas kept as small as possible. specific factors relating to class d loudspeaker connection are detailed below. class d loudspeaker connection long, exposed pcb tracks or connection wires will emit emi. the distance between the WM9090 and the loudspeaker should therefore be kept as short as possible. where speakers are connected to the pcb via a cable form, it is recommended that a shielded twisted pair cable is used. the shield should be connected to the main system, with care taken to ensure ground loops are avoided. further reduction in emi can be achieved using pcb ground (or vdd) planes and also by using passive lc components to filter the class d switching waveform. when passive filtering is used, low esr components should be chosen in order to minimise the series resistance between the WM9090 and the speaker, maximising the power efficiency. lc passive filtering will usually be effective at reducing emi at frequencies up to around 30mhz. to reduce emissions at higher frequencies, ferrite beads can also be used. these should be positioned as close to the device as possible. these techniques for emi reduction are illustrated in figure 21. figure 21 emi reduction techniques
WM9090 production data w pd, november 2010, rev 4.1 80 package dimensions b: 20 ball w-csp package 2.530 x 2.070 x 0.7mm body, 0.50 mm ball pitch a1 corner top view e z 0.10 2 x d 5 4 detail 2 detail 2 a a2 2 z 0.10 2 x a1 z bbb z 1 solder ball e1 a d1 detail 1 d c b e e 1 54 32 6 f1 f2 g h notes: 1. primary datum -z- and seating plane are defined by the spherical crowns of the solder balls. 2. this dimension includes stand-off height ?a1? and backside coating. 3. a1 corner is identified by ink/laser mark on top package. 4. bilateral tolerance zone is applied to each side of the package body. 5. ?e? represents the basic solder ball grid pitch. 6. this drawing is subject to change without notice. 7. follows jedec design guide mo-211-c. a1 0.219 d d1 e e1 e 2.000 bsc 2.070 0.250 1.500 bsc 0.500 bsc 2.530 dimensions (mm) symbols min nom max note a 0.700 a2 0.391 0.416 0.441 5 f1 0.754 0.646 0.244 0.269 g 0.040 0.036 0.044 h 0.314 bsc bottom view 0.270 f2 detail 1 2.500 2.040 2.560 2.100 dm087.a
production data WM9090 w pd, november 2010, rev 4.1 81 important notice wolfson microelectronics plc (?wolfson?) products and services are sold subject to wolfson?s terms and conditions of sale, delivery and payment supplied at the time of order acknowledgement. wolfson warrants performance of its products to the specifications in effect at the date of shipment. wolfson reserves the right to make changes to its products and specifications or to discontinue any product or service without notice. customers should therefore obtain the latest version of relevant information from wolfson to verify that the information is current. testing and other quality control techniques are utilised to the extent wolfson deems necessary to support its warranty. specific testing of all parameters of each device is not necessarily performed unless required by law or regulation. in order to minimise risks associated with customer applications, the customer must use adequate design and operating safeguards to minimise inherent or procedural hazards. wolfson is not liable for applications assistance or customer product design. the customer is solely responsible for its selection and use of wolfson products. wolfson is not liable for such selection or use nor for use of any circuitry other than circuitry entirely embodied in a wolfson product. wolfson?s products are not intended for use in life support systems, appliances, nuclear systems or systems where malfunction can reasonably be expected to result in personal injury, death or severe property or environmental damage. any use of products by the customer for such purposes is at the customer?s own risk. wolfson does not grant any licence (express or implied) under any patent right, copyright, mask work right or other intellectual property right of wolfson covering or relating to any combination, machine, or process in which its products or services might be or are used. any provision or publication of any third party?s products or services does not constitute wolfson?s approval, licence, warranty or endorsement thereof. any third party trade marks contained in this document belong to the respective third party owner. reproduction of information from wolfson datasheets is permissible only if reproduction is without alteration and is accompanied by all associated copyright, proprietary and other notices (including this notice) and conditions. wolfson is not liable for any unauthorised alteration of such information or for any reliance placed thereon. any representations made, warranties given, and/or liabilities accepted by any person which differ from those contained in this datasheet or in wolfson?s standard terms and conditions of sale, delivery and payment are made, given and/or accepted at that person?s own risk. wolfson is not liable for any such representations, warranties or liabilities or for any reliance placed thereon by any person. address: wolfson microelectronics plc 26 westfield road edinburgh eh11 2qb united kingdom tel :: +44 (0)131 272 7000 fax :: +44 (0)131 272 7001 email :: sales@wolfsonmicro.com


▲Up To Search▲   

 
Price & Availability of WM9090

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X